wordpress カスタムフィールドの特定の値をまとめて取得する

wordpress custom field include

WordPressには、「カスタムフィールド」という機能が、記事のタイトルや本文投稿とは別に準備されています。「カスタムフィールド」はキーと値の組み合わせからなり、例えば、「フルーツ」などのキーに対して、「バナナ」や「リンゴ」などの値を付加することができます。本文とは別に出力ができるので、ちょっとしたデータを汎用的にテーブルタグでまとめたい時などとても便利です。

WordPressの「カスタムフィールド」は便利な機能なのですが、出力する際にinclude(いくつかを含める)やexclude(何かを除外)して表示するのに少しコツを要します。今回は「カスタムフィールド」の情報を特定の値だけ選んでまとめて出力する方法を記事にしたいと思います。

「カスタムフィールド」の特定の情報を選んでまとめて出力する方法を先にすべてコードを示した後に簡単に解説したいと思います。コードは以下になります。

カスタムフィールドの特定の値をまとめて取得する コード解説

  • ・ワードプレスの持つget_post_custom_keysメソッドで投稿で設定した「すべてのカスタムフィールドのキー」を取得します。
  • ・除外したいキーの配列を自分で作成します。
  • ・phpのメソッドarray_diff()ですべてのキーの配列と除外したいキーの配列の差分を取ります。
  • ・phpのメソッドarray_values()で配列の添え字を整理します。
  • ・差分で取得した配列の長さ分ループします。
  • ワードプレスのメソッドget_post_meta()で投稿idとキーをパラメーターに値を取得します。
  • ・取得したキーと値の組でテーブルを作成します。

カスタムフィールドの特定の値をまとめて取得する コードのフローは以上になります。使用メソッドを簡単に説明しておきます。

get_post_custom_keys

指定した投稿の持つ「すべてのカスタムフィールド」のキーを配列で取得します。

使い方
パラメーター
$post_id
int(整数)カスタムフィールドのキー配列を取得したい投稿の ID
初期値: 現在の投稿の ID
返り値

投稿記事のカスタムフィールド名の配列を返す。投稿記事にカスタムフィールドが設定されていない場合はNULLを返す。

array_diff

複数の配列を比較して差分を返します。

使い方
パラメーター
$array1
比較元の配列
$array2
比較対象の配列
$array3…
さらに比較したい配列
返り値

array1 のエントリのうち、他のどの配列にも含まれない要素のみを含む配列を返します。

array_values

配列に数字添え字をつけて返す。添え字を整理する。

使い方
パラメーター
array
配列。
返り値

数値添字の値の配列を返します。

get_post_meta

投稿idとキーをパラメーターに値を取得します。

使い方
パラメーター
$post_id
(整数)(必須) カスタムフィールドを取得したい投稿の ID。ループ内で投稿の ID を取得するには get_the_ID() を、サブループ内では投稿オブジェクトの ID プロパティ(例: $my_post_object->ID)を使用してください。グローバルの $post オブジェクトの ID プロパティ(例: $post->ID)を使うこともできますが、これは常にあなたが意図したものとは限りません。
初期値: なし
$key
(文字列) (オプション) 取得したい値のキー名の文字列。
初期値: ”
$single
(真偽値) (オプション) true をセットした場合、文字列として単一の結果を返します。false または値をセットしなかった場合、関数はカスタムフィールドの配列を返します。
初期値: false

「wordpress カスタムフィールドの特定の値をまとめて取得する」まとめ

「wordpress カスタムフィールドの特定の値をまとめて取得する」の記事はこれまでになります。いかだだったでしょうか。カスタムフィールドの値を分割して表示したい時などに使用できると思います。今後、ワードプレス側でもっと簡単なメソッドを用意してくれるかもしれませんが、それまで使って頂ければ幸いです。それではまた。

おススメ関連記事

コメント

0

コメントして下さい

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です