複数のカテゴリに属し、特定の投稿メタ値を持つ投稿を選択する必要があります。複数のカテゴリを選択できます
query_posts( array( 'category__and' => array(1,2,3) ) );
しかしまた私はそれらの選択されたカテゴリから必要とし、wp_postmetaテーブルから特定のmeta_valueを持つそれらの投稿だけを選択します。私はSQLクエリで行うことができますこのタスク:
SELECT DISTINCT (
p.ID
), p . *
FROM wp_posts AS p
INNER JOIN wp_postmeta AS p1 ON ( p.ID = p1.post_id )
CROSS JOIN wp_postmeta AS p3
USING ( post_id )
WHERE p3.meta_key = 'length'
AND convert( p3.meta_value, signed )
BETWEEN '".$min_length."'
AND '".$max_length."'
AND post_status = 'publish'
$subSelect
ORDER BY p.ID DESC
たとえば、カテゴリ1 AND 2 AND 3 AND postmeta meta_keyの長さがBETWEEN $ min_length AND $ max_lengthである投稿だけを選択する方法がわかりません。
バージョン3.1以降、WPではカスタムフィールドのクエリが大幅に強化されました。私が正しいコードを手に入れたならば、あなたの質問はこのようなものであるべきです:
query_posts(array(
'category__and' => array(1,2,3),
'meta_query' => array(
array(
'key' => 'length',
'value' => array($min_length, $max_length),
'compare' => 'BETWEEN',
'type' => 'NUMERIC',
),
),
));
見る: