Расположение заголовка не работает в моем плагине WordPress.

Я пишу плагин для Wordpress. С помощью этого плагина я обновляю некоторые данные. Запрос и обновление работает нормально, но мой заголовок("location: url"); не работает Если я добавлю эхо, оно не выдаст ошибку, которую заголовки уже отправили. Похоже, что ничего не делает с этими линиями. Мой код...

<?php require_once('../../../wp-config.php');
$baanstatus_table=$wpdb->prefix . 'baanstatus';
$id = $_GET['id'];
$bijgewerkt =$_GET['bijgewerkt'];
$baanstatus= $_GET['baanstatus'];
$handicarts = $_GET['handicarts'];
$trolleys = $_GET['trolleys'];
$winterontheffing = $_GET['winterontheffing'];
$zomergreens = $_GET['zomergreens'];
$qualifying = $_GET['qualifying'];
$onderhoud_greens = $_GET['onderhoud_greens'];
$onderhoud_anders = $_GET['onderhoud_anders'];
$opmerkingen = $_GET['opmerkingen'];
global $wpdb;
$data_array =array('id' => $id, 
'bijgewerkt' => $bijgewerkt, 
'baanstatus' => $baanstatus, 
'handicarts' => $handicarts, 
'trolleys' => $trolleys,
'winterontheffing' =>$winterontheffing,
'zomergreens' =>$zomergreens,
'qualifying' =>$qualifying,
'onderhoud_greens' =>$onderhoud_greens,
'onderhoud_anders' =>$onderhoud_anders,
'opmerkingen' =>$opmerkingen
);
$where =array('id' => $id);
$wpdb->update( $baanstatus_table, $data_array, $where );
header("location:http://almeerderhout.fcklap.com/wp-admin/options-general.php?page=my-unique-identifier");
exit(); 
?>

2 ответа

Возможно, вам следует попробовать javascript, а не местоположение PHP.

<?php
   echo '<script>location.href="http://almeerderhout.fcklap.com/wp-admin/options-general.php?page=my-unique-identifier";</script>';
?>

Код ниже поможет вам

 <?php
wp_redirect( $location, $status );
exit;
?>

Приведенная выше функция wordpress будет использоваться для перенаправления ссылки на функцию Codex Link.

Вы должны подключить свой плагин к правильному действию Wordpress, чтобы избежать "ошибки уже отправленных заголовков" при попытке перенаправления.

Я обнаружил, что хорошее место для перенаправления - это template_redirect action, так что вы можете написать что-то вроде этого:

function do_something_then_redirect() {

    // do something with $_GET or $_POST data

    // then redirect to some url defined in the $redirect_url variable
    wp_redirect($redirect_url);
    die;
}
add_action('template_redirect', 'do_something_then_redirect');
Другие вопросы по тегам