您可以考虑使用SQL命令修改WP\\u查询以对其进行分组,但这有点超出了我当前的MySQL,然而,我总是通过在分类法本身上运行foreach来完成http://codex.wordpress.org/Function_Reference/get_categories
下面是一些示例代码:
<?php
global $post;
$current = get_the_ID($post->ID);
$cargs = array(
\'child_of\' => 0,
\'orderby\' => \'name\',
\'order\' => \'ASC\',
\'hide_empty\' => 1,
\'taxonomy\' => \'category\', //change this to any taxonomy
);
foreach (get_categories($cargs) as $tax) :
// List posts by the terms for a custom taxonomy of any post type
$args = array(
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'posts_per_page\' => -1,
\'orderby\' => \'title\',
\'meta_key\' => \'_rkv_issue_select\',
\'meta_value\' => $current,
\'tax_query\' => array(
array(
\'taxonomy\' => \'category\',
\'field\' => \'slug\',
\'terms\' => $tax->slug
)
)
);
if (get_posts($args)) :
?>
<h2><?php echo $tax->name; ?></h2>
<ul>
<?php foreach(get_posts($args) as $p) : ?>
<li><a href="<?php echo get_permalink($p); ?>"><?php echo $p->post_title; ?></a></li>
<?php endforeach; ?>
</ul>
<?php
endif;
endforeach;
?>
这将遍历每个有帖子的类别(hide\\u empty设置为true),并对其执行get\\u posts操作(并且在输出任何内容之前检查是否有帖子)。
我不确定你想要什么样的标题来分隔分组,所以我使用了h2并添加了一个列表链接。
我将其更改为get\\u posts,因为我发现它更高效,因为它不重写全局$post变量(更少的数据库调用,更少的wp\\u reset\\u query())。