既然Wordpress的排序功能不包括这种功能,你可能应该问问MattMullenweg。。。哈哈。。。
不,但实际上,您可能可以对每个字母使用query\\u posts()(换句话说,最多调用26次循环,每个字母一次。然后,对于每个循环,让包含一些代码,以检查post meta\\u值的第一个字母是否与相应的字母匹配。如果没有与该字母匹配的帖子,那么让跳过该字母即可。
您当前只有一个循环。您可能需要编写一个for()循环,该循环将依次生成每个wordpress循环。
类似这样的内容(只是一个草稿):
<ul class="list-ensemble">
<? for ($i=65; $i<91; $i++) : // 65 through 90 represent the uppercase alphabet
query_posts(\'post_type=person&post_status=publish&meta_key=last_name&orderby=meta_value&order=ASC\');
//PUT SOME CODE HERE TO CHECK IF THE FIRST LETTER IS EQUAL TO $i
//Set some variable $letter_matches == true if the letter matches.
?>
<h3 class="letter">
<?php //ECHO THE LETTER CORRESPONDING TO $i HERE ?>
</h3>
<?
if ( have_posts() and $letter_matches ) while ( have_posts() ) : the_post(); ?>
<li data-id="<?php the_ID(); ?>">
<a href="<?php the_permalink(); ?>" class="ensemble-single-link">
<?php if ( has_post_thumbnail() ) { the_post_thumbnail(thumbnail); } ?>
</a>
</li>
<?php endwhile; // end of the loop. ?>
<?endfor; ?>
</ul>
因此,基本上,页面中最多有26个wordpress循环。我不确定这对服务器有多大的压力,但它应该可以工作。这是我想到的第一件事。让我知道怎么回事!