を短く私は次のような状況があります:カスタム投稿タイプを持つユーザーによって投稿された製品。それらを「広告」と呼んでください。広告には、WooCommerce製品への1-1リンクがあります。 はそれに続い私はベンダー項目をしている(彼らは、複数のベンダーのプラグインによって追加されている)と1post_typeごとに異なる条件でWP_Query
に設定し、そのmeta_key「_vendor_product」と他のpost_type製品と区別WooCommerce製品は、これまでのところ私は2つのクエリを作って、コメントを追加していますそれら:
$ads = new WP_Query(
array(
'post_type' => 'ads',
'paged' => $paged,
'post_status' => 'publish',
'meta_query' => array(
array(
'key' => 'product_id',
'value' => $product_ids,
'compare' => 'IN'
)
)
)
);
$shop_items = new WP_Query(
array(
'post_type' => 'product',
'paged' => $paged,
'post__in' => $product_ids,
'meta_query' => array(
array(
'key' => '_vendor_product',
'value' => 1,
'compare' => '='
)
)
)
);
}
// Include shop items in the stream of products
$wp_query = new WP_Query(array('paged' => $paged));
$wp_query->posts = array_merge($ads->posts, $shop_items->posts);
$wp_query->post_count = $ads->post_count + $shop_items->post_count;
しかし、私はそう私の行動/フィルター/ページネーションを破るように見えるsomehwereとして、1 WP_Queryでそれらの両方が必要です。 'post_type' => array('ads', 'product')
で別のpost_typesをクエリできますが、_vendor_product = 1
の条件は、post_type product
の項目にのみ適用され、ads
には適用されません。私は必要なもの
は基本的に
SELECT * FROM wp_posts, wp_postmeta
WHERE (post_type = 'ads')
OR
(post_type = 'product' AND meta_key = '_vendor_product' AND meta_value = 1)
AND
wp_posts.ID = wp_postmeta.post_id
であることがWP_Queryの境界内にこれを達成することは可能ですか?
これはあなたが関係を追加したり、http://wordpress.stackexchange.com/questions/191748/how-can-i-apply-aあなた複合クエリー、すなわち状況に動作するかどうかを確認してください-meta-a-single-custom-post-in-the-main-query – Mohsin
あなたの答えをありがとうございます。残念ながら、それはうまくいきません。ベンダーによって作成されていないすべての「製品」投稿がまだあります。 –