usermetaテーブル内のカスタムフィールドの値の一覧を出力したい
-
いつもお世話になっております。
usermetaテーブルに追加したカスタムフィールド(meta_key)の値を指定し、そのmeta_valueの値をループで出力して検索項目のセレクトメニューに表示させようとしています。
usermetaテーブル内における指定したmeta_keyに
存在するmeta_valueの一覧を。例えば、カスタムフィールド「wpcf-address_pref」に
・東京都
・大阪府
・北海道が存在したら、これらをセレクトメニューに出力というふうに。
以下の例(投稿タイトル一覧を出力)を適宜変更すれば
出来るかと思ったのですが、meta_keyを指定すれば
存在する全てのmeta_keyの値が、meta_valueを指定すれば
存在する全てのmeta_valueの値が表示されてしまって(当然ですが)
meta_keyの値に「wpcf-address_pref」を持つmeta_valueの値の一覧を
取得することが出来ません。<?php $data = $wpdb->get_results( "SELECT post_title FROM $wpdb->posts" ); foreach ($data as $value) { echo $value->post_title . "<br />"; } ?>こういったwpdbを使ったデータベースの操作が初めてで
とんちんかんなことをしているかもしれませんが、このような利用は
少なくないのではないかと思いましてアドバイスを求める
投稿をさせていただきました。かなり検索したのですが検索の仕方が
悪いのか、これというものにヒットしませんで。(当方の読解力が
足りないせいもあると思いますが)元日早々でコメントをいただくのは無理かと思いますが
目に止まった方がおられましたらアドバイスを何卒宜しくお願い致します。
-
あけましておめでとうございます。
お望みのリストは、下のクエリで取得できます。意味は、「$wpdb->usermeta テーブルから、meta_key カラムに wpcf-address_pref を持つ行の meta_value カラムの値を重複なしに抽出しろ」というものです。
$data = $wpdb->get_col("SELECT DISTINCT meta_value FROM $wpdb->usermeta WHERE meta_key='wpcf-address_pref'"); foreach ($data as $value) { echo $value . "<br />"; }47都道府県しかないのであれば、ページが表示されるたびにデータベースにアクセスするより、最初から45要素の配列を用意した方が圧倒的に速いのではないでしょうか?
トピック「usermetaテーブル内のカスタムフィールドの値の一覧を出力したい」には新たに返信することはできません。