我正在为我的WordPress网站创建一个简单的代码,重定向任何未登录到页面的人,它看起来像这样:
<?php
global $current_user;
$currentuserid = $current_user->ID;
if( $currentuserid > 0 ){
} else {
wp_redirect( 'https://site/?error=unauthorized' );
}
exit;
?>
字符串
代码工作正常,但我面临的问题是,当我将其添加到WordPress网站使用插件,如“插入代码片段”,当代码运行时,它阻止了整个页面内容,我不希望发生这种情况。
例如,当用户登录时,这段代码不应该做任何事情,它会显示一个白色页面。你知道如何修复这个问题或者是什么导致了这个问题吗?
1条答案
按热度按时间iibxawm41#
你的
exit()
在else的右括号外,所以每次都运行它。文档见here。注意:wp_redirect()不会自动退出,并且几乎总是要跟一个exit调用;
您需要:
字符串
或者更好的方法是,反转if语句,这样就不会有空条件,并使用null合并运算符,这样就不必使用临时变量来保存id:
型