1

所以基本上我有一个 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 语句,以及完成它的同样多的信号变量。我觉得这可以更有效地完成,我想知道是否有人有更好的想法,我不必做这么多 ifs。

这是我当前的代码: http: //pastebin.com/UnUqQWcN

4

1 回答 1

0

这可能不是最优雅的解决方案,但它肯定会节省一些“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;

} 
于 2013-07-30T05:59:37.810 回答