显示每个类别的唯一帖子

时间:2013-08-18 作者:Umesh Awasthi

在主页上,我需要显示几个不同类别的帖子,下面是我遇到的一些问题

任何帖子都可以属于任意数量的类别

$cat_args = array(
     \'orderby\' => \'name\',
      \'order\' => \'ASC\',
     \'exclude\' => \'17,1\',
     \'number\' => \'6\'
   );

 $fcategories =   get_categories($cat_args);
    foreach($fcategories as $fcategory) {
    $post_args = array(
             posts_per_page\' => 1,
             \'cat\' => $fcategory->cat_ID
           );

   $fposts = query_posts($post_args);
 while(have_posts()) : the_post();
 get_template_part(\'post\', \'homepage\');
 endwhile;
但我在这方面面临的问题很少post-homepage.php , 我有以下代码来获取类别

$category_detail=get_the_category($post->ID);
这可以选择分配给该职位的任何类别,此外,由于同一职位可以与多个类别相关联,因此很可能相同的职位可以出现在不同的类别下。

如何显示每个类别的唯一posst,以便没有两个类别具有相同的帖子。到目前为止,我无法将任何其他参数传递给get_template_part()

1 个回复
SO网友:s_ha_dum

跟踪您的帖子IDs

$cat_args = array(
  \'orderby\' => \'name\',
  \'order\' => \'ASC\',
  \'exclude\' => \'17,1\',
  \'number\' => \'6\'
);

$fcategories = get_categories($cat_args);
$used_ids = array();
foreach($fcategories as $fcategory) {
  $post_args = array(
    \'posts_per_page\' => 1,
    \'cat\' => $fcategory->cat_ID
  );
  if (!empty($used_ids)) {
    $post_args[\'post__not_in\'] = $used_ids;
  }

  $fposts = new WP_Query($post_args);
  if ($fposts->have_posts()) {
    while($fposts->have_posts()) {
      $fposts->the_post();
      $used_ids[] = $post->ID;
      get_template_part(\'post\', \'homepage\');
    }
  }
}
几点注意事项:

代码中有几个语法错误,请不要使用query_posts.

应该注意的是,使用此replace the main query 在页面上可以increase page loading times, 在最坏的情况下more than doubling the amount of work needed or more. 虽然易于使用,但该功能prone to confusion and problems 过后有关详细信息,请参阅下面关于注意事项的注释。

http://codex.wordpress.org/Function_Reference/query_posts (重点矿山)

结束

相关推荐

Responsive Admin Themes

我在看这个管理主题的示例(http://themepixels.com/main/themes/demo/webpage/shamcey/dashboard.html). 至于标签为“Navigation”的左侧管理栏,有没有一种方法可以在不使用插件的情况下实现这种类型的左侧仪表板管理菜单?我想用css、js或Jquery来实现这一点,任何处理编码的东西都可以。