我想限制订阅者和贡献者的页面

时间:2018-04-28 作者:Walid Ahmed Samy

嗯,我想限制订阅者和贡献者的页面,并想将他们重定向到另一个页面。

但我该怎么做呢?

1 个回复
SO网友:Nathan Johnson

以下代码显示了如何限制某些用户查看特定页面。这可以放在独立插件或主题函数中。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;
}

结束

相关推荐