根据帖子类型的多个WP_Query参数组合



我想根据帖子类型使用单独的meta_query参数。

例如,我想查询具有绿色衣领t-shirts或具有绿色内衬dress-shirts,现在我只做一个后期类型检查,其中我检查t-shirtsdress-shirts,并且我分别检查元值,这意味着它还将显示不同的组合,如具有1绿色内衬的t-shirts

$query = new WP_Query(array(
'post_type' => array('t-shirts', 'dress-shirts'),
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'collar',
'value' => 'green',
),
array(
'key' => 'inner-lining',
'value' => 'green',
)
),
));

我如何设置它来使用两个不同的参数,一个是如果帖子类型是t-shirts,另一个是单独的参数,如果帖子类型为dress-shirts,看起来像:

$query = new WP_Query(
array(
array(
'post_type' => array('t-shirts'),
'meta_query' => array(
array(
'key' => 'heal',
'value' => 'green',
)
),
),
array(
'post_type' => array('dress-shirts'),
'meta_query' => array(
array(
'key' => 'sleeve',
'value' => 'green',
)
),
),
)
);

做两个单独的查询是不起作用的,因为这会打乱分页。


请注意,这是wp.stackeexchange上相同问题的副本,因为那里几乎没有活动

WP_Query不接受此参数格式。你可以试试下面的代码

$query = new WP_Query(
array(
'post_type' => array( 't-shirts', 'dress-shirts'),
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'heal',
'value' => 'green',
),
array(
'key' => 'sleeve',
'value' => 'green',
)
)
)
);

您还可以为每种post类型创建两个数组,并将wp_query循环放在一个获取参数的函数中,因此,无论您想在哪里使用,都足以调用循环函数,并为每个post类型提供一个参数数组。

函数wp_loop($args({

$post=新的WP_Query($args(;

while($post->have_posts(((:$post->the_post((;

...

endwhile;wp_reset_postdata((;}

现在,对于每种帖子类型,我们都会执行以下操作:$args=数组('post_type'=>'t恤衫,。。。);wp_loop($args(;

对于下一个帖子类型(连衣裙衬衫(,我们的工作方式相同:$args=数组('post_type'=>'连衣裙’,。。。);wp_loop($args(;

最新更新