好的,我想限制订阅者和缴费员的页面,并希望将它们重定向到另一个页面。
但我怎么能做到呢?
发布于 2018-04-28 18:16:21
下面的代码演示如何限制某些用户查看某个页面。这可以放在一个独立的插件或主题functions.php文件中。代码是相当不言自明的,但我会仔细研究一下。
首先,选择一个合适的钩子来使用。我之所以选择wp,是因为它是在WordPress完全加载并设置了$wp对象之后。根据应用程序的不同,您可能希望更早或更晚地连接。
接下来,确定您是否在某个页面或帖子上,仅限于特定用户。我选择限制具有“受限”post_title的帖子/页面。你得用你自己的标准。如果条件很复杂,您可能希望将业务逻辑转移到它自己的函数中。如果帖子不受限制,那就早点回来。
接下来,检查用户是否应该能够看到页面或帖子。publish_posts功能既没有登录,也没有贡献者,也没有订阅者,所以我用它来查看他们是否应该能够看到帖子。如果他们有这种能力,那么他们可以看到帖子,所以提前返回。
最后,使用wp_safe_redirect()重定向不应该看到帖子的用户。
add_action( 'wp', 'restrict_contributors' );
function restrict_contributors() {
// * You'll have to determine how a post is restricted
if( 'Restricted' !== get_post()->post_title ) {
return;
}
//* Subscribers and contributors don't have the publish_posts capability
//* Non-logged in users also don't have this capability
if( current_user_can( 'publish_posts' ) ) {
return;
}
//* Redirect all other users to some location
wp_safe_redirect( home_url() );
exit;
}https://wordpress.stackexchange.com/questions/302131
复制相似问题