wordpress站点未打开任何页面。显示此页具有重定向循环的错误
我在一个会员网站上工作。那些没有选择任何级别并且已经注册了出生日期的用户,我想在他们尝试访问任何页面时将他们重定向到成员级别。我正在使用wordpress,安装了buddypress。我已经在function.php中编写了这段代码wordpress站点未打开任何页面。显示此页具有重定向循环的错误,wordpress,redirect,Wordpress,Redirect,我在一个会员网站上工作。那些没有选择任何级别并且已经注册了出生日期的用户,我想在他们尝试访问任何页面时将他们重定向到成员级别。我正在使用wordpress,安装了buddypress。我已经在function.php中编写了这段代码 add_action('init','redirect_to_levels'); function redirect_to_levels(){ $user_ID = get_current_user_id(); $Birthday = xprofi
add_action('init','redirect_to_levels');
function redirect_to_levels(){
$user_ID = get_current_user_id();
$Birthday = xprofile_get_field_data( 'Birthday', $user_ID );
$did_level = displayed_user_on_level($user_ID); //this returns the level
$redirect_page = get_permalink(215);
if(!$did_level && $Birthday ) {
wp_redirect( $redirect_page ); exit;
}
}
但问题是,当我试图访问该网站时,浏览器不会打开任何页面,并显示此错误。
“此网页具有重定向循环”
当我删除wp_重定向时,它工作正常。在重定向到$redirect_页面时,该页面还运行redirect_to_levels函数,并再次将其重定向到自身,从而导致重定向循环 你可以加上
if ( is_page(215) )
exit;
到函数的第一行。对此我也不确定。但我想的是 functions.php上的函数在每次加载页面时都会运行。因此,当您加载一个页面时,它正在重新定向。因此,它一次又一次地出现 将此代码添加到自定义页面模板。(添加到检查用户级别的页面) 或者获取用户级别的检查页面id并执行以下操作。(假设您的id是123)
添加_操作('init','redirect_to_levels');
告诉我这是否有效。我没有检查这个代码。在测试站点上尝试此操作。如果您回显
$redirect\u页面
是否获得了正确的值?是的,我获得了正确的值,但我刚刚发现is\u page()在functions.php中不起作用。还有其他方法可以找到当前页面吗?我刚刚发现Is_page()在functions.php中不起作用。还有其他方法可以找到当前页面吗。?谢谢你做了这件事。我还看到了很多关于is_page()函数的线程,但它在function.php中不起作用。因此,我所做的是使用php函数查找当前页面url,即$actual_link=“http://$\u SERVER[http\u HOST]$\u SERVER[REQUEST\u URI]”;然后将重定向url与$actual_链接进行比较,得到所需的答案。谢天谢地,这不管用。现在整个代码都可以工作了,因为它在add_操作钩子之外。那么你不能将它添加到自定义页面模板吗?不要在该页中编写重定向到\u levels()函数。只需添加$user_ID=get_current_user_ID()$生日=xprofile\u get\u field\u data(‘生日’,$user\u ID)$did_级别=在_级别上显示的_用户($user_ID)//这将返回级别$redirect\u page=get\u permalink(215);如果(!$did_level&&$Birthday){wp_redirect($redirect_page);exit;}在get header函数之前
<?php if(is_page(123)) { ?>
add_action('init','redirect_to_levels');
<?php } ?>