如何从RSS订阅中删除私人帖子?

时间:2020-03-04 作者:Rafaucau

私人帖子只对管理员和编辑可见,但我发现它们在RSS提要中公开显示。我如何才能从那里移除它们?

我有此代码,但不起作用:

function removeRssPrivatePost($content)
{
  global $post;
  if ($post->post_status == \'private\') {
    return;
  }

  return $content;
}
add_filter(\'the_excerpt_rss\', \'removeRssPrivatePost\');
add_filter(\'the_content_feed\', \'removeRssPrivatePost\');

3 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

与您更改任何其他屏幕上显示的帖子WP的方式相同,pre_get_posts! 如果您曾经看到WP pull-in帖子,并且想要修改它从DB中获取的内容,请使用pre_get_posts 滤器

E、 g.类似于此:

add_action( \'pre_get_posts\', function( \\WP_Query $query ) {
    if ( !$query->is_feed() ) {
        return; // this isn\'t a feed, abort! 
    }
    $query->set( \'post_status\', \'publish\' ); // we only want published posts, no drafts or private
} );

SO网友:KiwisTasteGood

你的主题是否有“提要rss”。php’?

您可以添加到其中的查询中,使其仅显示某些post状态”。

$the_query = new WP_Query( array( \'post_status\' => array( \'publish\' ) );

SO网友:Jani Uusitalo

WordPress不应该在公共RSS提要中显示私人帖子,除了您提到的那些特权用户,甚至他们需要在登录到您的站点的浏览器中查看提要。如果你的WordPress确实在feed中为每个人显示私人帖子,那就有问题了;可能是行为不端的插件或主题。