按字母顺序获取自定义字段值

问题描述 投票:1回答:1

下面的函数按照发布顺序列出自定义字段的值。例:

  • 弗兰克卡普拉
  • 阿尔弗雷德希区柯克
  • 伍迪艾伦
  • 伍迪艾伦
  • 弗兰克卡普拉
  • PedroAlmodóvar

我想按字母顺序排列这个列表而不重复,每个项目的链接都是<a href="Woody-Allen">Woody Allen</a>。例:

  • 阿尔弗雷德希区柯克
  • 弗兰克卡普拉
  • PedroAlmodóvar
  • 伍迪艾伦

这是代码:

<?php
$movie_reviews = get_posts( 'numberposts=-1&orderby=post_name' );
foreach( $movie_reviews as $post ) : setup_postdata( $post );
?>
<span>
<?php $director = get_post_meta( $post->ID, "director", $single = true );
if( $director !== '' ) {
echo $director;
} ?>
</span>
<?php endforeach; ?>

这可能吗?

wordpress list field
1个回答
0
投票

使用get_posts,您可以使用meta_value订购帖子,如下所示:

$movie_reviews = get_posts(array(
  'numberposts'=>-1,
  'order'=>'ASC',
  'orderby'=>'meta_value',
  'meta_key'=>'director'
));

要删除重复项,您可以构建一个导演数组:

$directors = array();
foreach( $movie_reviews as $post ) {
    $director = get_post_meta( $post->ID, 'director', true );
}
$directors = array_unique($directors);

然后,您可以根据需要显示它们:

foreach ($directors as $director) {
    // display what you want
}

编辑:仅显示*导演:

foreach ($directors as $director) {
    if (strtolower($director[0])=='a') {
        // display what you want
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.