WordPress wp_query $value = ALL



i使用效果很好的WP_QUERY。现在,我想添加用户不通过"猫"或"城市"过滤的能力。

那么,我只能通过特殊字符来指定$类别,例如"*"或"%"到"所有值"?现在还没有找到它...我应该用另一种方式吗?谢谢

  $args = array(
  'post_type' => 'post',
  'cat'     => $category,
  'meta_query' => array(
    array(
      'key'     => 'usp-custom-rdvp_city',
      'value'   => $city,
      'compare' => 'LIKE',
    ),
    array(
      'relation' => 'OR',
      array(
        'key' => 'usp-custom-rdvp_date_event_start',
        'value'   => array( $fromDate, $toDate),
        'type'    => 'DATE',
        'compare' => 'BETWEEN',
      ),
      array(
        'key' => 'usp-custom-rdvp_date_event_end',
        'value'   => array( $fromDate, $toDate),
        'type'    => 'DATE',
        'compare' => 'BETWEEN',
      ),
    ),
  ),
);

按类别过滤

那么,我只能通过特殊字符来指定$类别,例如"*"或"%"到"所有值"?

否。取而代之的是,当您想要所有类别时,您希望不包括cat参数。好吧,请考虑一下。您将如何在一个代码中实现一个/或查询论点?

如果有指定类别。

,您会动态添加cat参数
if ( $category ) {
    $args['cat'] = $category;
}

城市怎么样?

使用与以上类别相同的方法。如果有城市,请添加该城市的元查询。

if ( $city ) {
    $args['meta_query'][] = array(
        'key'     => 'usp-custom-rdvp_city',
        'value'   => $city,
        'compare' => 'LIKE',
    );
}

完整的参数

让我们把它们放在一起。

$args = array(
    'meta_query' => array(
        array(
            'relation' => 'OR',
            array(
                'key'     => 'usp-custom-rdvp_date_event_start',
                'value'   => array( $fromDate, $toDate ),
                'type'    => 'DATE',
                'compare' => 'BETWEEN',
            ),
            array(
                'key'     => 'usp-custom-rdvp_date_event_end',
                'value'   => array( $fromDate, $toDate ),
                'type'    => 'DATE',
                'compare' => 'BETWEEN',
            ),
        ),
    ),      
);
if ( $category ) {
    $args['cat'] = $category;
}
if ( $city ) {
    $args['meta_query'][] = array(
        'key'     => 'usp-custom-rdvp_city',
        'value'   => $city,
        'compare' => 'LIKE',
    );
}

顺便说一句,您不需要指定'post_type' => 'post',因为它默认设置为post

相关内容

最新更新