【WordPress】カスタムフィールドの名前を指定して、重複なく全ての値を取得する(プラグインなし)
今回は、カスタムフィールドの名前を引数として、重複なく全ての値を取得する関数を作成しました。
1次元配列で値が返却されます。
カスタムフィールドについて
カスタムフィールドを使うことにより、記事に追加情報を付与することが出来ます。
例えば、各記事に「価格」という名前を用意して、値を設定したとします。
これにより、カスタムフィールドを利用した検索フォーム等で
- 「価格」を基準にして記事を並び替える
- 「価格」をもとに検索を行う
といったことが出来ます。
関数
カスタムフィールドの値を取得する関数を以下のように作成しました。
- 引数 $meta_key…カスタムフィールドの任意の名前
- 返却値 $meta_value…$meta_keyに準ずる値(1次元配列、重複無)
function my_meta_value( $meta_key='' ){
if( empty($meta_key) )
return;
global $wpdb;
$meta_value = $wpdb->get_col($wpdb->prepare(
"SELECT DISTINCT meta_value from {$wpdb->postmeta} WHERE meta_key = '$meta_key';",null)
);
return($meta_value);
}
使用例
各記事に以下のようにカスタムフィールドを設定したとします。
※はちゃめちゃに見えますが、商品をパンと見立ててカスタムフィールドを設定してます笑

ここから、「塗るもの」の値を取得するには、以下のように記述します。
$meta_value = my_meta_value('塗るもの');
print_rで確認すると、以下のように表示されます。

終わりに
簡単な関数で実行できますのでぜひお試しください。
また、修正点等あればご指摘いただけると嬉しいです!
ディスカッション
コメント一覧
まだ、コメントがありません