如何在指定时间段后从主页上删除某个类别的帖子?

时间:2018-07-12 作者:cyoung1989

我想知道如何在一段时间后从我的主页中删除某个类别的帖子(但不过期帖子)。

My site 当前设置为显示类别“Basic”中我的最新博客文章。

“基本”类别有以下子类别:

基本的

--公告

--特定公司

--行业

--其他

--第三方

----Fisco

“第三方”子类别有每周的帖子。所有其他子类别加起来就是一个每周帖子。因此,我的主页内容有一半来自“第三方”子类别。我想设置这个,这样“第三方”的帖子在14天后从主页上删除。

1 个回复
SO网友:cjbj

这看起来很简单,但不幸的是不是,因为wp_query 不允许基于多个参数(在本例中为类别和日期)排除帖子。可以基于多个参数进行选择,但不能排除。所以,要想做你想做的事,你必须以某种方式将你的两个论点捆绑在一起。从概念上讲,您可以选择不想要的帖子,然后使用该列表根据其ID将其排除在外。接下来:

add_action (\'pre_get_posts\', \'wpse308323_multiple_exclude\', 10, 1);
function wpse308323_multiple_exclude ($query) {
  // only do this on home page for main query
  if ( $query->is_home() && $query->is_main_query() && ! is_admin() ) {
    // define posts to exclude and get them
    $args = array (
      \'category_name\' => \'third-party\',
      \'date_query\' => array(
        array(
          \'before\' => \'2 weeks ago\'
           )
        )
      );
    $q2 = new WP_Query ($args);
    // extract an array of ID\'s from the posts retrieved in $q2
    $q2_ids = wp_list_pluck ($q2->$posts,ID);
    // exclude these ID\'s from the main query
    $query->set (\'post__not_in\', $q2_ids);
    }
  }
免责声明:以上代码是为了说明这个概念。我还没有测试它,所以可能需要调试。一些参考资料:

结束

相关推荐

Counting Posts by Category

我试图学习WP查询,但发现它有点难。我有从论坛插件(wps\\u Forum\\u post)创建的帖子,我希望根据所选类别(wps\\u Forum\\u post.meta.wps\\u fe\\u brand-retailer-service)和进一步选择的三个计数(wps\\u Forum\\u post.meta.wps\\u fe\\u overall-experience)按降序显示计数。我似乎不知道该怎么做。我想显示与此类似的结果:品牌B帖子(共32篇)-正面(10篇)无所谓(12篇)负面