阻止某些订阅者查看特定分类(频繁更改)

时间:2012-01-28 作者:john

我创建了一个分类法(我们称之为tax). 我需要限制用户可以看到的内容。用户不能编辑任何内容,只需阅读博客即可。如果只是设置他们只能看到一次的内容,我可能只会创建一个新的用户角色,但他们将查看的内容会经常更改

例如:

   user1 can view tax1, tax4
   user2 can view tax3
   user3 can view tax1, tax2
下周一切都会改变(有点像退房看电影或书,然后还回去)

如何确保用户不能查看除分配给他们的分类之外的任何其他分类

我希望有一个我还没有找到的函数,类似于:

if(!get_taxonomy(ID)){
    echo "You\'re not permitted to view this";
}else{
    //Continue with showing page...
}
我已经做了一些设置,以便在他们的用户配置文件中为他们指定分类法。因此,在前端,当页面打开时,我可以检查他们可以看到哪些分类法。但他们仍然可以导航到其他分类法。如果他们看到他们在http://website/tax1/ 然后他们就可以输入http://website/tax2/ 并查看其他分类法

这必须在单个用户的基础上完成,而不是分配给某个角色,因为将有如此多的不同用户和如此多的不同分类法

很抱歉,我不能提供一个真实的例子;它正在本地开发,其中包含一些敏感信息
如果我需要澄清任何事情,我非常乐意澄清

谢谢您的帮助!

1 个回复
最合适的回答,由SO网友:mor7ifer 整理而成

像这样的怎么样if( in_array( $current_tax, get_user_meta( $user, \'legal_taxonomies\', true ) ) ) 您可以使用get_term_by(). 这是基于这样的假设,即您将可用的分类法存储为一个数组,但对于任何存储方法都很容易更改。

结束

相关推荐

为什么GET_USERS突然返回重复项?

我很难弄明白这一点。我正在运行一个简单的用户查询:$args = array( \'role\' => \'custom_role\', \'orderby\' => \'ID\', \'order\' => \'DESC\', \'number\' => 3 ); $users = get_users( $args ); 并且生成的数组具有重复的条目:Array (