Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wordpress站点未打开任何页面。显示此页具有重定向循环的错误_Wordpress_Redirect - Fatal编程技术网

wordpress站点未打开任何页面。显示此页具有重定向循环的错误

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

我在一个会员网站上工作。那些没有选择任何级别并且已经注册了出生日期的用户,我想在他们尝试访问任何页面时将他们重定向到成员级别。我正在使用wordpress,安装了buddypress。我已经在function.php中编写了这段代码

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 } ?>