【WordPress・カスタムフィールド】「値」を「キー名」の昇順・降順で出力

WordPressでサイトを作成していると、カスタムフィールドの値をループで出力する際に、キー名の昇順・降順で値を出力したい場合があるかもしれません。
今回は、そのような場合に使えるソースコードの例となります。
カスタムフィールドの値を並び替えてループで出力する例
例のソースコードでは、カスタムフィールドの配列を、「キー名」で昇順にソートした後に、ループを使い「値」を出力します。
それにより、カスタムフィールドの「値」が、「キー名」の昇順で出力されます。
ソースコードの例
<?php
// すべてのカスタムフィールドの情報を配列で取得。
$fields = get_post_custom();
if ( $fields ) {
// カスタムフィールドをキー名でソート
ksort( $fields );
// ループで値を取得
foreach ( $fields as $key => $value ) {
if(!(preg_match( "/^_/", $key ))){ // _(アンダースコア)から始まるキー名を除外
echo $value[0] . "です。<br>"; // get_post_custom関数は多次元配列を返すため、最初の値を指定して取得
}
}
};
?>
ksort関数は、キーと値の関係を維持しつつ、配列をキーの名前でソートするPHPの関数となり、今回の例では、get_post_custom関数で取得したカスタムフィールドの情報の配列を、ksort関数でソートしています。
また、、配列をソートさせる関数は他にもあります。詳しくは以下のリンク先を参考にしてみてください。
カスタムフィールドのキーの名前の例
上記ソースコードのループで、カスタムフィールドの値を決まった順番で出力にするには、カスタムフィールドのキー名の昇順どおりに、値をペアにします。
例として、下記をキーの名前とした場合に、下記キーの名前とペアとなっている値が、下記キー名の順番(昇順)どおりに出力されます。
- field01-01
- field01-02
- field02-01
- field02-02