我有一个自定义页面模板,只有某些用户角色可以访问。如果访问者没有登录或者没有被授予角色,他会被重定向到登录页面。WordPress的不识别登录的用户
问题是,如果用户在登录之前尝试访问此页面,他无论如何都会被重定向(登录后) - 只有在清除浏览器数据和重新记录后才能解决问题。如果用户先登录然后尝试访问该页面,则不会发生这种情况。
function ts_restrict_user_access() {
if (is_page_template('templates/ts-sample.php')) {
$redirect = true;
if (is_user_logged_in()) {
$user = wp_get_current_user();
if (in_array('worker', (array) $user->roles) || in_array('administrator', (array) $user->roles)) {
$redirect = false;
}
}
if ($redirect) {
wp_redirect(esc_url(home_url('/login')), 301);
}
}
}
您是否使用某种缓存插件来缓存响应?另外我不认为你需要$ redirect变量和逻辑来处理它。 – Peter
谢谢。除了我正在构建的内容外,我没有任何活动插件,但是,我使用此片段从插件中进行模板化:http://www.wpexplorer.com/wordpress-page-templates-plugin/ – synergy