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

时间:2015-09-02 20:48:53

标签: php wordpress nested custom-fields

现在我有一个作者名单,他们的帖子标题旁边是名字:

即。 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一样列出自己。

我需要在代码中更改哪些内容?

1 个答案:

答案 0 :(得分:0)

也许

  <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>