1

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

  • 弗兰克·卡普拉
  • 阿尔弗雷德·希区柯克
  • 伍迪·艾伦
  • 伍迪·艾伦
  • 弗兰克·卡普拉
  • 佩德罗·阿莫多瓦

我想按字母顺序获取此列表且不重复,并带有指向每个项目的链接<a href="Woody-Allen">Woody Allen</a>。例子:

  • 阿尔弗雷德·希区柯克
  • 弗兰克·卡普拉
  • 佩德罗·阿莫多瓦
  • 伍迪·艾伦

这是代码:

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

这可能吗?

4

1 回答 1

1

使用get_posts,您可以像这样订购帖子meta_value

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

要删除重复项,您可以构建一个 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
}

编辑:仅显示 a* 导演:

foreach ($directors as $director) {
    if (strtolower($director[0])=='a') {
        // display what you want
    }
}
于 2012-09-21T07:47:22.563 回答