注销Wordpress并重定向到不同的URL

时间:2014-11-11 16:50:17

标签: wordpress redirect

我在我的网站上注销了Wordpress

注销后,我想将用户重定向到其他网址。

我在functions.php

中使用它
    add_action(' wp_logout ',' auto_redirect_external_after_logout ');
    function auto_redirect_external_after_logout(){
      wp_redirect( ' http://redirect-url ' );
      exit();
    }

并在标题

    <li class="signOut"><?php wp_logout(); ?></li>

当我运行时,我在页面中得到一长串错误

    Warning: Cannot modify header information - headers already sent by

2 个答案:

答案 0 :(得分:6)

<li class="signOut"><?php wp_logout(); ?></li>

这是有问题的代码,您正在调用wp_logout函数来记录用户,并且WordPress需要将信息(标题)发送到浏览器,从而导致错误。

所以最终的动作代码应该是

add_action( 'wp_logout', 'auto_redirect_external_after_logout');
function auto_redirect_external_after_logout(){
  wp_redirect( 'http://redirect-url' );
  exit();
}

并且注销链接应更改为

<li class="signOut"><a href="<?php echo wp_logout_url(); ?>" title="Logout">Logout</a></li>

答案 1 :(得分:1)

如果你想使用那个钩子,你将需要使用JavaScript,因为标题已经被发送:

add_action(' wp_logout ',' auto_redirect_external_after_logout ');
function auto_redirect_external_after_logout(){
    echo '<script>window.location.href = "http://redirect-url"</script>';
    exit();
}

或者,更优雅的方法是使用wp_logout_url()函数代替当前的注销链接,并将所有钩子一起废弃。用法:

<a href="<?php echo wp_logout_url( 'http://redirect-url' ); ?>" title="Logout">Logout</a>