0

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

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

我希望这段代码能够发布所有帖子private。这可行,然后我直接打开帖子页面,但在“类别”页面上,该帖子仍然可见。

为了使这个示例正常工作,我还应该覆盖什么?

4

1 回答 1

0

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

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

看看这里

于 2017-07-18T11:15:36.307 回答