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'
));

重複を削除するには、ディレクターの配列を構築できます。

$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 に答える