web-dev-qa-db-ja.com

wpdbのカスタムpost_typeの問題

カスタム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を試してみました

1
Wordpress User

私は方法を見つけました:

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;
                                                }
                                        }
1
Wordpress User

特定の投稿タイプ内のキーのすべてのメタ値を取得しようとしている場合は、単一のクエリで次のようなことを実行できます。

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'
1
Milo