この記事は最後に更新してから1年以上経過しています。
説明
投稿記事ごとに設定されているカスタムフィールドの値は get_post_meta関数で取得できるが、すべての投稿記事で設定されているカスタムフィールドの値を一覧を取得する関数が見当たらない。カテゴリーや投稿タグのようにそれぞれの値と実際に使用されている投稿記事件数を取得したいのだが、探し方が悪いのか見つからないのだ。カスタムフィールドに関連する関数の多くは、/wp-includes/meta.phpに定義されているのだが、上から下まで目を通してみても目的の関数が見当たらなかった。需要があれば定義されていてもおかしくないわけで、どうやらそういった需要はなかったということらしい。
まあ、定義されていないものは作ればいい。実際に作った関数はこんな感じ(関数名はそれっぽくしてみた)。
function get_post_meta_values( $meta_key = '' ) {
global $wpdb;
if ( !is_string( $meta_key ) || trim( $meta_key ) == '' )
return false;
$query = $wpdb->prepare(
"SELECT meta_value, count(*) AS count FROM $wpdb->postmeta
WHERE meta_key = %s GROUP BY meta_value", $meta_key );
return $wpdb->get_results( $query );
}
$addr1_values = get_post_meta_values( 'addr1' );
foreach ( $addr1_values as $addr1_value ) {
// 値は $addr1_value->meta_value に
// 登録数は $addr1_value->count に
}
最近、カスタムフィールドを使うか、カスタムタクソノミーを使ったほうがいいのか悩むことがある。結果的にはよりお手軽なカスタムフィールドを使うケースがほとんどなんだけどね。
最終更新 : 2011年09月16日 19:44
関連
お勧め
get_next_comments_link(2024年12月18日 更新)
string get_next_comments_link( [ string $label = '' [ , int $max_page = 0 [ , int $page = null ] ] ] )
次のコメントリンクを取得する。
add_dashboard_page(2022年6月27日 更新)
mixed add_dashboard_page( string $page_title, string $menu_title, mixed string $capability, string $menu_slug [ , mixed $function = '' ] )
ダッシュボードメニューにサブメニューを登録する。
use_block_editor_for_post(2023年4月24日 更新)
bool use_block_editor_for_post( int | WP_Post $post )
投稿がブロックエディターに対応しているか調べる。
wp_image_editor_supports(2012年12月20日 更新)
bool wp_image_editor_supports( [ mixed $args = array() ] )
イメージエディタがサポートしているか調べる。
wp_check_filetype_and_ext(2019年2月23日 更新)
array wp_check_filetype_and_ext( string $file, string $filename [ , array $mimes = null ] )
ファイルタイプと拡張子を調べる。