我在我的网站上注销了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
答案 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>