按附件元关键字分组帖子

时间:2015-10-13 作者:joshuaiz

我正在尝试按元键对帖子进行分组。到目前为止,我能够用meta键(“分组”)显示所有帖子,但它列出了每个帖子的分组。

我想要实现的是将分组列为标题,然后将所有包含该分组的帖子列在标题下。

例如:

圣诞节后1至7日爵士乐后8至9日。。。等等“圣诞节”、“当代”和“爵士乐”是“分组”的元价值观。

这是我当前的循环:

<ul>

<?php $args = array(
// \'post_parent\' => $post->ID,
\'post_type\'   => \'attachment\',
\'post_mime_type\' => array(\'audio/midi\', \'zip\'),
\'numberposts\' => -1,
\'meta_key\'      => \'grouping\',
\'orderby\'      => \'meta_value\',
\'order\'    => \'ASC\',

);


$posts = get_posts($args);

if( $posts ): ?>

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

    $grouping = get_field(\'grouping\'); 
    
    ?>

    <?php if ($grouping == $grouping ) { ?>

        <h2><?php echo $grouping; ?></h2>

    <li>


        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </li>

<?php } ?>

<?php endforeach; ?>

</ul>

<?php wp_reset_postdata(); ?>

<?php endif; ?>
返回如下内容:

圣诞节,我完全理解我们三个国王的圣诞节。我似乎不知道如何通过“分组”元键对帖子进行分组。我做错了什么?

谢谢

1 个回复
最合适的回答,由SO网友:Benjamin Love 整理而成

这实际上是一个php/html问题,因为这个问题出现在Wordpress之外。您要做的是对照前一个检查当前的元名称,如果它不同,那么您将回显标题。你已经一次完成了所有需要的帖子,所以这就像:

$currentGroup = "";
foreach ($posts as $post) {
  setup_postdata($post);
  $grouping = get_field(\'grouping\');
  if ($grouping != $currentGroup) {
    if ($currentGroup != "") {
      echo "</ul>";
    }
    echo "<h2>" . $grouping . "</h2><ul>";
  }
  $currentGroup = $grouping;
  echo "<li><a href=\'" . the_permalink() . "\'>" . the_title() . "</a></li>";
}
干杯。

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post