用于拉动分类帖子的优化代码

时间:2011-07-17 作者:Cristian

我创建了一个名为“商店”的CPT,每个商店都注册了一个名为“商店类型”的分类法(即,无论是时装店还是儿童店等)。还有第三种分类法“地板”。商店可以像大型百货商店一样位于多个楼层。

客户要求我按“门店类型”和各楼层列出所有“门店”。

到目前为止,我有一个想法创建一个可怕的循环,如:(目前只有伪代码)

foreach storeLevel as level
{
   foreach storeType as type
   {
      get_posts_by_store_type() /* Note this would be a new WP_Query() */
      list_stores();
   }
}
可以想象,这将创建数百个查询。每个帖子上都有一些我需要浏览的自定义字段。

有谁能告诉我一个更好的方法来按分类法列出帖子吗?

编辑:我测试了一段类似的代码,只列出了门店,没有经过每个级别,它创建了大约80个查询,只添加了五分之一的门店/

1 个回复
SO网友:alexleonard

不用花太多时间考虑这个问题,我可以想象您只需一个查询就可以完成它。

$store_array = array();

while (have_posts()) : the_post();
    $store_type = // get term id, slug, name from store type taxonomy
    $store_floor = // get term id, slug, name from floor taxonomy
    $store_array[$store_type][$store_floor] = $post->ID;
endwhile;

// run a foreach on your $store_array
从那里,您可以按楼层顺序列出门店类型和子组。Post ID将为您提供以下选项get_the_title()get_permalink().

如果需要更多详细信息,可以向阵列中添加另一个维度。

结束

相关推荐