WP - 按自定义字段创建嵌套列表

WP - Create a nested list by custom field

现在我有一个作者列表,名字旁边有 post 头衔:

即。 1 - 现在看起来像这样(注意 B 名称列出了两次)
姓名 - 标题 1
B 姓​​名 - 标题 1
B 姓​​名 - 标题 2
C名-标题1

(代码看起来像这样)

<?php 

$posts = get_posts(array(
   'posts_per_page'  => -1,
   'post_type'       => 'post',
   'order'           => 'ASC',
   'orderby'        => 'author-last',
   'meta_key'        => 'author-last'
));

if( $posts ): ?>

   <ul>

   <?php foreach( $posts as $post ): setup_postdata( $post ) ?>

      <div>
         <?php echo get_post_meta($post->ID, 'author-last', true);?>
         <?php the_title(); ?>
      </div>

   <?php endforeach; ?>

   </ul>

   <?php wp_reset_postdata(); ?>

<?php endif; ?>

即。 2 - 但是我需要这个列表像这样显示....

一个名字
标题 1
B 姓​​名
标题 1
标题 2
C名称 标题 1

所以我通常希望有一个没有重复名称的嵌套列表。因此,如果多个标题由同一作者撰写,它会像示例 2 中那样列出自己。

我的代码需要更改什么?

可能

  <ul>

       <?php  
       foreach( $posts as $post ): setup_postdata( $post ) ?>
          <li> 
          <div>
          <?php
             static $curr_auth_name = '';
             if ($curr_auth_name != get_post_meta($post->ID, 'author-last', true)) {
                 $curr_auth_name = get_post_meta($post->ID, 'author-last', true);
                 echo $curr_auth_name;
             }
             echo the_title(); 
          ?>
          </div>
          </li> 
       <?php endforeach; ?>

  </ul>