查询的数量并不是衡量性能的唯一标准,单个查询的成本可能超过许多简单查询的成本。
(小查询)x12的成本<;大查询x1+字符串/数组操作的成本
您最好执行12个单独的查询。如果代价高昂,请将结果存储在瞬态中,以便稍后保存处理。
但更好的是,您还可以使用save\\u post上的钩子来更新值,这样就不需要“搜索”,它变成了一个简单的检索存储值操作。这样,如果您存储它并通过get\\u选项检索它,则不会执行额外的查询,因为Wordpress已经加载了该值,并且不会进行不必要的SQL查询来再次检索它。
// in functions.php
function check_category_latest($post_id){
// check the categories this post is assigned to
// foreach category this is assigned to
// if it\'s the latest in that category
set_option(\'mytheme_cat_\'.$term_id,$post_id);
}
add_hook(\'save_post\',\'check_category_latest\');
// where you want to display your posts
$categories=get_categories($args);
foreach($categories as $category) {
$post_id = get_option(\'mytheme_cat_\'.$category->term_id);
// do post display stuff
}
沿着这些路线的东西会给你你想要的,它也会为所有的子类别提供,而且比12个单独的查询,甚至是1个大的昂贵查询要便宜得多