DBにある情報を$wpdb使って直接データを取得する場合

例:カスタムフィールドの値を条件に、何件登録しているかカウントを取得
<?php
// これを宣言しないとできない。
global $wpdb;

$meta_value = "会社名";

$query = "SELECT COUNT(*) FROM $wpdb->posts p
LEFT OUTER JOIN $wpdb->postmeta pm on p.ID = pm.post_id
WHERE meta_key = 'office_name' AND meta_value = '".$meta_value."' AND post_status = 'publish';";
$meta_count = $wpdb->get_results($query, ARRAY_A);

return $meta_count[0]['COUNT(*)'];
?>

 

postmetaには、設定したカスタムフィールドのmeta_keyとmeta_valueが登録され、そこに利用されているpostのidが登録されている。それを取り出してpostのidと比較した状態で、カスタムフィールドの値で絞り込みしている。