我正在开设会员网站。没有选择任何级别并已注册其出生日期的用户,我想在他们尝试访问任何页面时将其重定向到会员级别。我正在使用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时,它工作正常。
答案 0 :(得分:0)
当重定向到$ redirect_page时,该页面还会运行redirect_to_levels函数并再次将其重定向到自身,从而导致重定向循环。
您可以添加
if ( is_page(215) )
exit;
到函数的第一行。
答案 1 :(得分:0)
我也不确定。但我认为是,
functions.php上的函数正在运行每个页面加载。因此,当您加载页面时,它正在重新恢复。所以它一次又一次地肆虐。
将此代码添加为自定义页面模板。(到您检查用户级别的页面)
或获取用户级别检查页面ID并执行以下操作。 (让我们认为你的身份证是123)
<?php if(is_page(123)) { ?>
add_action('init','redirect_to_levels');
<?php } ?>
告诉我这是否有效。我没有检查这段代码。在测试网站上试试这个。