我试图给予特定页面的访问权限只为我的订阅用户角色,如果其他人与其他然后订阅用户角色或非角色用户想访问此页面重定向到自定义登录页面,我尝试与下面的片段,但我认为它有问题,你能请帮助我修复这个
示例:限制对特定页的访问
add_action( 'template_redirect', function() {
// Get global post
global $post;
// Prevent access to page with ID 1052
$page_id = 1052;
if ( is_page() && ( $post->post_parent == $page_id || is_page( $page_id ) ) ) {
// Set redirect to true by default
$redirect = true;
// If logged in do not redirect
// You can/should place additional checks here based on user roles or user meta
if ( current_user_can( 'subscriber' ) || !is_user_logged_in()) {
$redirect = false;
}
// Redirect people without access to login page
if ( $redirect ) {
wp_redirect( get_site_url().'/custom-url-login' ); exit;
}
}
} );
4条答案
按热度按时间qvtsj1bj1#
您可以像这样重构代码:
这个答案已经过测试,工作正常!
bf1o4zei2#
这难道不是你想要的吗
7ivaypg93#
WordPress管理 Jmeter 盘〉外观〉主题文件编辑器〉主题函数functions.php
通过在底部添加以下内容来编辑代码:
然后将您选择的页面/帖子从“公开”更改为“私人”可见性:
页面〉所有页面〉页面〉快速编辑〉私人(复选框)
你可以做一个重定向,替换functions.php底部的
siteurl
,使用:或URL重定向到“仅为订户提供的页面”,例如:
https://WordPress.com/wp-login.php?user_id=3&redirect_to=https%3A%2F%2Fwordpress.com%2Fabout%2F#top
polhcujo4#
首先,你必须检查用户是否登录,如果用户没有登录,那么你需要重定向用户到登录页面,登录后,你需要应用代码代码,然后它会工作正常。