Wordpress - get_post_status过滤器在类别中被忽略

时间:2017-07-18 10:39:19

标签: php wordpress wordpress-hook

我想覆盖get_post_status功能来标记帖子publicprivate,具体取决于用户代理信息和发布数据(基本上,隐藏某些特定未授权用户的特定帖子) 。以下是MCVE演示我的问题:

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

我希望此代码可以发布所有帖子private。这样就可以了,我直接打开了帖子页面,但是在“类别”页面上,这个帖子仍然可见。

我还应该覆盖哪些内容才能使此示例正常工作?

1 个答案:

答案 0 :(得分:0)

您应该使用其他方法来完成此操作 - 例如,检查用户是否已登录和/或具有某种特权(并且基于这种情况对您不希望向用户显示的帖子进行排序)。

您指出的代码段 - 适用于单个帖子页面(因为$ ID设置为全局变量 - 但这会隐藏所有用户的所有帖子...总是:)

看看here