问题描述
我想根据帖子类型使用单独的Meta_query
自变量。
例如,我要查询具有绿色项圈的t-shirts
或具有绿色内衬的dress-shirts
,现在,我只进行一次帖子类型检查,检查t-shirts
和 dress-shirts
,然后分别检查元值,这意味着它还将显示不同的组合,例如作为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',)
),));
如何设置它以与两个不同的参数一起使用,如果帖子类型为t-shirts
,则为一个,而如果帖子类型为dress-shirts
,则为单独的arg,其外观类似于:
$query = new WP_Query(
array(
array(
'post_type' => array('t-shirts'),'Meta_query' => array(
array(
'key' => 'heal',)
),array(
'post_type' => array('dress-shirts'),'Meta_query' => array(
array(
'key' => 'sleeve',)
);
请注意,这是wp.stackexchange上同一问题的副本,因为那里几乎没有活动。
解决方法
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',)
)
)
);
,
您还可以为每种帖子类型创建两个数组,并将wp_query循环放入获取参数的函数中,因此您要使用的任何地方都足以调用循环函数,并为其提供参数数组每个帖子类型。
函数wp_loop($ args){
$ post =新的WP_Query($ args);
while($ post-> have_posts()):$ post-> the_post();
...
结束; wp_reset_postdata(); }
现在,对于每种帖子类型,我们执行以下操作: $ args =数组( 'post_type'=>'t-shirts', ... ); wp_loop($ args);对于下一个帖子类型(衬衫),我们的工作方式相同: $ args =数组( 'post_type'=>'礼服衬衫', ... ); wp_loop($ args);