微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决根据帖子类型的多个WP_Query args组合

我想根据帖子类型使用单独的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);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。