Какой рычаг должен использоваться для добавления действия, содержащего перенаправление?

Я хочу создать плагин, который захватывает определенные параметрические усилители URL от строки запроса для создания новой строки запроса для той же страницы. Я следую за превосходным Профессионал книга Разработки плагинов WordPress, но я не уверен, которые сцепляются для использования для этого действия. Вот моя функция действия:

add_action( 'init', 'tccl_redirect' );
function tccl_redirect() {
    header ( "Location: http://www.mysite.com/$mypage?$newparam=$newvalue" );
?>

Какие рычаги подходят для перенаправлений заголовка?

16
20.03.2011, 14:26
3 ответа

Как кайзер, которому отвечают template_redirect рычаг действительно подходит для перенаправлений.

Также необходимо использовать wp_redirect() функция, вместо того, чтобы установить заголовок.

13
19.02.2020, 21:57

Я сказал бы template_redirect. Но смотрите на Ссылку Действия.

Пример

Не забывайте exit() на перенаправлении.

/**
 * This example redirects everything to the index.php page
 * You can do the same for the dashboard with admin_url( '/' );
 * Or simply base the redirect on conditionals like 
 * is_*() functions, current_user_can( 'capability' ), globals, get_current_screen()...
 * 
 * @return void
 */
function wpse12535_redirect_sample() {

    exit( wp_redirect( home_url( '/' ) ) );

}

add_action( 'template_redirect', 'wpse12535_redirect_sample' );
17
19.02.2020, 21:57

Но я сказал бы, что этот пример от кайзера не может, работая, потому что после перенаправления этот рычаг template_redirect работает снова и снова, у Вас будет бесконечная передача!

Лучше должен проверить, если Вы уже находитесь на домашней странице, как это:

function wpse12535_redirect_sample() {

    $current_url = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
    $site_url = get_bloginfo('siteurl') . "/";

    if($current_url != $site_url)       
      exit( wp_redirect( home_url( '/' ) ));    

}
add_action( 'template_redirect', 'wpse12535_redirect_sample');

Работы для меня прекрасный. Какие-либо предложения?С уважением!

8
19.02.2020, 21:57

Теги

Похожие вопросы