【问题标题】:Exclude specific post from WP-feed从 WP-feed 中排除特定帖子
【发布时间】:2013-10-17 16:49:18
【问题描述】:

我知道您可以使用以下网址生成供稿:?cat=3&feed=rss2

您可以通过在前面加上减号来切换它以排除类别 3:?cat=-3&feed=rss2

但是,您似乎不能对帖子执行相同的操作?我正在使用 JW 视频播放器并已加载相关插件。相关插件可以将 rss-feed(媒体 rss)作为参数,因此它可以链接到其他相关的视频/wordpress 帖子。

我的问题是,目前这意味着活动视频也出现在相关视频供稿中。

解决此问题的最佳解决方案是什么?我的目标是在未来创建自己的 rss 提要生成器,但现在我只想保持简单并使用 wordpress 创建的生成提要。例如,有没有一种简单的方法来添加对名为 post 的 url 参数的支持?然后可能需要 post=-7 才能将 id 为 7 的帖子排除在提要中显示。

或者有更好的解决方案吗?

【问题讨论】:

    标签: wordpress video jwplayer


    【解决方案1】:

    你可以使用函数

        function exclude_category($query){
        if ( $query->is_home  || $query->is_feed || $query->is_archive ) {
            $query->set('cat', '-1');
        }
        return $query;
        }
        add_filter('pre_get_posts', 'exclude_category');
    

    看到了

    【讨论】:

      【解决方案2】:

      而不是解释机制 - 有很多插件就是为了这个.. 我知道的一个是:

      StelthPubish

      编辑我

      我不知道 URL - 但您可以尝试使用

      function ok9_feed_filter($query) {
          if ( !$query->is_admin && $query->is_feed) {
              $query->set('post__not_in', array(15, 6) ); // page /post id
          }
          return $query;
      }
      add_filter( 'pre_get_posts', 'ok9_exclude_filter' );
      

      或者这个

      function ok9_feed_exlude($where, $wp_query = NULL) {
          global $wpdb;
          if ( !$wp_query )
              global $wp_query;
          if ($wp_query->is_feed) {
              // exclude post id 
              $where .= " AND $wpdb->posts.ID NOT IN (15, 6)";
          }
      
          return $where;
      }
      add_filter( 'posts_where','ok9_feed_exlude', 1, 2 );
      

      如果您不想在函数中使用固定 ID - 您可以随时在要排除的帖子中添加自定义字段,并在查询中使用它..

      【讨论】:

      • 嗨,这不是我要求的。我不希望帖子被秘密发布或类似的东西。在任何正常情况下,该帖子仍应显示在任何正常提要中。我想要的是生成一个带有 url 的提要(类似于 cat=-3&feed=rss2 (忽略提要中的类别 3),而是强制执行一个提要,其中忽略帖子 7(例如)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-23
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-16
      • 1970-01-01
      相关资源
      最近更新 更多