WP_QUERY:仅当帖子的访问被限制为登录用户的角色时才查询帖子

时间:2018-04-26 作者:Daniele Squalo

这就是我想做的。我有一些帖子只对具有特定角色的用户可见。我想在用户的配置文件部分显示它们,以便它们在登录后立即可见。让我强调一下:我不想显示允许我的用户查看的所有帖子,只想显示那些限制我用户角色的帖子。

我的发现和尝试并没有解决我的问题。

$q = new WP_Query(array( \'perm\' => \'readable\' ));
    while ($q->have_posts()) : $q->the_post();
        the_title();
    endwhile;
当然,这会查询所有可访问的帖子,这不是我想要的。那么,我可以避免创建一个受限类别来解决这个问题吗?

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

如果帖子仅限于要求用户具有的特定角色,则必须向帖子添加一些元数据。否则,WP不会知道你指的是哪些帖子。

有一个标准框,用于将元数据添加到您的帖子中(在编辑屏幕的“屏幕选项”下选择“自定义字段”),或者您可以创建自己的metabox 或(更简单)taxonomy. 从你的问题来看,我想你已经考虑过后一种选择,认为它太麻烦了。但是没有办法避免在帖子上贴上标签,告诉系统哪些是针对哪种类型的用户的。

一旦文章中有一些元数据,您就可以查询它。

结束

相关推荐

Apply permissions per post

我们有一个WordPress网站,在那里我们有外部作者,我们在Editor 数量我们希望这些编辑能够创建新的帖子并修改他们自己的帖子,但偶尔我们会有一些正在进行的帖子,我们更希望保持更私密。这是一个非常小的用户池,需要“保护”的帖子数量甚至更少,所以我对任何需要为我们自己的用户明确授予权限或为外部用户明确拒绝权限的技术都没有意见。否认当然会更容易,但我不会太挑剔。