2017-07-18 53 views
0

忽略我想覆盖get_post_status功能,以纪念这取决于用户代理信息和发布数据的帖子publicprivate(基本上,隐藏一些特定的非法用户一些具体的职位)。下面是MCVE证明我的问题:WordPress的 - get_post_status过滤器在类别

add_filter('get_post_status', function($post_status, $post) { 
    return 'private'; 
}, 10, 2); 

我期待这个代码,以使所有的职位private的。这个作品然后我直接打开帖子页面,但在“类别”页面上,这个帖子仍然可见。

我还应该重写哪些内容才能使此示例正确工作?

回答

0

您应该使用其他方法来完成此操作 - 例如,检查用户是否已登录并且/或者具有某种特权(并根据这些信息挑选出您不想显示给用户的帖子)。

您的代码段,正如你所指出 - 工程单后的网页上(因为$ ID设置为一个全局变量 - 但是这将隐藏所有用户的所有帖子......总是:)

看看here

+0

我在上面提到过,这只是一个例子。实际上,它应该隐藏所有未经授权的用户的所有帖子。但是出了点问题,它只在帖子页面上隐藏帖子,而不是从类别/等等隐藏。 –