【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

コメント投稿またはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。
Twitterで返信する場合はこちらから。

また、コメントは承認制となります。