カスタムSQLクエリでカスタム投稿タイプを使用したいのですが、クエリにカスタム投稿タイプを追加しても結果が得られません。
私の問題はどこにありますか?
これは私が試したコードです
$top5_ov_performance = $wpdb->get_results("SELECT post_id,meta_value FROM ".$wpdb->prefix."postmeta WHERE meta_key = 'sd_top5_overclocing' AND (post_type = 'cpu') ORDER BY meta_value DESC LIMIT 0,5 ");
私はpost_type = 'cpu'
の代わりにこの(post_type = 'cpu')
を、そしてand
の代わりにAND
を試してみました
私は方法を見つけました:
global $wpdb,$post;
$query_ids = $wpdb->get_results("SELECT ID FROM ".$wpdb->prefix."posts WHERE (post_type = 'cpu') LIMIT 0,10");
foreach ($query_ids as $query_id) {
$query = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."postmeta WHERE post_id = ".$query_id->ID." AND meta_key = 'sd_rating' ORDER BY meta_value LIMIT 0,10");
foreach ($query as $value) {
echo $value->meta_value;
}
}
特定の投稿タイプ内のキーのすべてのメタ値を取得しようとしている場合は、単一のクエリで次のようなことを実行できます。
SELECT post_id, meta_value FROM $wpdb->postmeta pm, $wpdb->posts p
WHERE meta_key = 'sd_rating' and pm.post_id = p.ID AND p.post_type = 'cpu'