所以基本上我有一个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只运行一次,并且每个字母都是特定的。我目前的解决方案是if语句从字母a到字母z,以及完成它的信号变量。我觉得这可以更有效率地完成,我想知道是否有人更好地了解我不需要这么多ifs。
以下是我目前的代码:http://pastebin.com/UnUqQWcN
答案 0 :(得分:0)
这可能不是最优雅的解决方案,但它肯定会保存一些“if”语句。
在循环的每次迭代中,跟踪最后一个帖子的第一个字母。
ex,假设帖子已按字母顺序排列:
$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;
}