我想覆盖get_post_status
功能来标记帖子public
或private
,具体取决于用户代理信息和发布数据(基本上,隐藏某些特定未授权用户的特定帖子) 。以下是MCVE演示我的问题:
add_filter( 'get_post_status', function( $post_status, $post ) {
return 'private';
}, 10, 2 );
我希望此代码可以发布所有帖子private
。这样就可以了,我直接打开了帖子页面,但是在“类别”页面上,这个帖子仍然可见。
我还应该覆盖哪些内容才能使此示例正常工作?
答案 0 :(得分:0)
您应该使用其他方法来完成此操作 - 例如,检查用户是否已登录和/或具有某种特权(并且基于这种情况对您不希望向用户显示的帖子进行排序)。
您指出的代码段 - 适用于单个帖子页面(因为$ ID设置为全局变量 - 但这会隐藏所有用户的所有帖子...总是:)
看看here。