このエントリーをはてなブックマークに追加

特定の投稿タイプの投稿に含まれる、特定のカスタムフィールドの値をすべて取得する方法。

functions に

function get_meta_values( $key = '', $type = 'post', $status = 'publish' ) {
    global $wpdb;
    if( empty( $key ) )
        return;
    $r = $wpdb->get_col( $wpdb->prepare( "
        SELECT pm.meta_value FROM {$wpdb->postmeta} pm
        LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id
        WHERE pm.meta_key = '%s' 
        AND p.post_status = '%s' 
        AND p.post_type = '%s'
    ", $key, $status, $type ) );
    return $r;
}

get_meta_values( ‘keyの名前’, ‘投稿タイプ名’ ); のように使う。
すべてカンマ区切りで表示の場合は

echo implode( ', ', get_meta_values( 'keyの名前', '投稿タイプ名' ));

ネタ元はhttp://wordpress.stackexchange.com/questions/9394/getting-all-values-for-a-custom-field-key-cross-post

2014.05.29 投稿 2015.04.05 更新

新しい情報を追記している場合はありますが、古い情報の修正はしていません。投稿日・文中の日付を参照してください。

Recent Articles