所以基本上我有一个WP_Query,它按字母顺序输出所有帖子。现在我需要根据它们的第一个字母将这些帖子分为几个部分,所以类似于下面的
列出所有带有的帖子
列出所有带有b 的帖子
问题是我想包含div,而这些div只需要运行一次,而不是多次,例如
<div class="letterA">
<div class="title">A</div>
My list of A posts
</div>
<div class="letterB">
<div class="title">B</div>
My list of B posts
</div>
... and so on until Z
这些div只运行一次,并且它们特定于每个字母。我目前的解决方案有从字母a到字母z的if语句,以及同样多的信号变量来完成它。我觉得这可以更有效地完成,我想知道是否有人更好地知道我不必做那么多if。
这是我当前的代码:http://pastebin.com/UnUqQWcN
这可能不是最优雅的解决方案,但它肯定会保存一些"if"语句。
在循环的每次迭代过程中,跟踪最后一篇文章的第一个字母。
例如,假设帖子已经按字母顺序排列:
$lastLetter = '';
while ( have_posts() ) {
the_post();
$currentLetter = strtolower(substr(get_the_title(), 0, 1));
if ($currentLetter != $lastLetter) {
// do custom nav header code
}
// do list of links content here
$lastLetter = $currentLetter;
}