困难的WordPress循环,不容易描述

时间:2012-01-27 08:45:49

标签: wordpress

使用自定义首页设置的WordPress支持的网站。在大多数情况下,首页的结构如下:

Cat 1 Title 来自类别的最新帖子

  • 接下来的5个类别的帖子
  • Cat 2 Title 来自类别的最新帖子

  • 接下来的5个类别的帖子
  • Cat 3 Title 来自类别的最新帖子

  • 接下来的5个类别的帖子
  • 问题是,可以将帖子分配给多个类别。所以,我可以写一篇文章“Sample Post”并将其发布在Cat 1和Cat 2类别中。从这里开始,首页将在两个类别下显示该帖子,并且它也将是最新的帖子,因此它将在主页上作为样本帖子发布。

    我试图让帖子只显示在主页上的一个类别下。关于这个问题的任何其他建议也会受到欢迎。

    1 个答案:

    答案 0 :(得分:1)

    我不确定您使用什么方法来检索结果,但您可以使用post__not_inexclude参数从查询中排除某些帖子(即已经出现的帖子) 。

    首先设置一个排除数组:

    $exclude_this = array();
    

    在循环内部,将帖子的ID添加到该数组中。例如,在循环内部:

    $exclude_this[] = get_the_ID();
    

    然后在每个查询中使用该数组来排除内部的任何帖子。例如,要获取ID为5的类别中的所有帖子,除了 $exclude_this中的帖子

    $query = new WP_Query( array( 
          'category__in' => array(5) ,
          'post__not_in' => $exclude_this,
    ) );
    

    我没有对上面的内容进行测试,但它应该可以工作。你可能需要确保$exclude_this是一个整数数组,而不是它们的字符串表示。