Php Wordpress-类别中忽略获取\发布\状态筛选器

Php Wordpress-类别中忽略获取\发布\状态筛选器,php,wordpress,wordpress-hook,Php,Wordpress,Wordpress Hook,我想覆盖get_post_status功能,根据用户代理信息和post数据标记postpublic或private(基本上,对某些特定的未授权用户隐藏一些特定的post)。以下是MCVE演示我的问题: add_filter( 'get_post_status', function( $post_status, $post ) { return 'private'; }, 10, 2 ); 我希望这段代码能使所有的帖子私有化。这是可行的,然后我直接打开帖子页面,但在“分类”页面上,这篇帖

我想覆盖
get_post_status
功能,根据用户代理信息和post数据标记post
public
private
(基本上,对某些特定的未授权用户隐藏一些特定的post)。以下是MCVE演示我的问题:

add_filter( 'get_post_status', function( $post_status, $post ) {
    return 'private';
}, 10, 2 );
我希望这段代码能使所有的帖子
私有化
。这是可行的,然后我直接打开帖子页面,但在“分类”页面上,这篇帖子仍然可见


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

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

正如您所指出的,您的代码片段在一个post页面上工作(因为$ID设置为全局变量,但这将对所有用户隐藏所有post…始终:)


看一看。

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