Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress-元查询-可以使用多个或嵌套的元查询参数吗?_Wordpress_Logic_Meta_Custom Fields - Fatal编程技术网

Wordpress-元查询-可以使用多个或嵌套的元查询参数吗?

Wordpress-元查询-可以使用多个或嵌套的元查询参数吗?,wordpress,logic,meta,custom-fields,Wordpress,Logic,Meta,Custom Fields,我正在使用wordpress的meta_查询来尝试构建一个基本事件系统 每个事件都有若干元键/值。例如: Start Date End Date Ongoing (Yes/No) 我想将正在进行(持续=是)和未进行(持续=否)的事件分开 然后,在我正在进行的活动中,我想将以下活动分开: 两周内开始或两周内结束 已经开始和结束超过两周 我的问题在案例1中本质上是: (Start Date <= Two Weeks OR End Date <= Two Weeks) AND Ongoi

我正在使用wordpress的meta_查询来尝试构建一个基本事件系统

每个事件都有若干元键/值。例如:

Start Date
End Date
Ongoing (Yes/No)
我想将正在进行(持续=是)和未进行(持续=否)的事件分开

然后,在我正在进行的活动中,我想将以下活动分开:

  • 两周内开始或两周内结束
  • 已经开始和结束超过两周
  • 我的问题在案例1中本质上是:

    (Start Date <= Two Weeks OR End Date <= Two Weeks) AND Ongoing == YES
    
    (开始日期“结束日期”,
    'orderby'=>'meta_value',
    “订单”=>“ASC”,
    “元查询”=>数组(
    '关系'=>'和',
    排列(
    '键'=>'开始日期',
    “价值”=>今天的美元,
    '比较'=>'>='
    ),
    排列(
    '键'=>'结束日期',
    “值”=>$nexttwoweeks,
    
    “比较”=>“由于当前正在编写meta_查询,我99%确信这是不可能做到的

    您可以做的是为正在进行的操作创建一个(可能是私有的)自定义分类法,该分类法的行为类似于布尔值,并且只使用一个术语(“是”或“1”或其他任何术语)。然后您的WP_查询将更改为如下所示:

    $ongoingSoon = array(
        'category_name' => 'event',
        'meta_key' => 'End Date',
        'orderby' => 'meta_value',
        'order' => 'ASC',
        'meta_query' => array(
            'relation' => 'OR',
            array(
                'key' => 'Start Date',
                'value' => $today,
                'compare' => '>='
            ),
            array(
                'key' => 'End Date',
                'value' => $nexttwoweeks,
                'compare' => '<='
            )
        ),
        'tax_query' => array(
            array(
                'taxonomy' => 'ongoing',
                'field' => 'slug',
                'terms' => 'yes'
            )
        )
    );
    
    $ongoingSoon=数组(
    “类别名称”=>“事件”,
    “元密钥”=>“结束日期”,
    'orderby'=>'meta_value',
    “订单”=>“ASC”,
    “元查询”=>数组(
    '关系'=>'或',
    排列(
    '键'=>'开始日期',
    “价值”=>今天的美元,
    '比较'=>'>='
    ),
    排列(
    '键'=>'结束日期',
    “值”=>$nexttwoweeks,
    '比较'=>'
    
    $ongoingSoon = array(
        'category_name' => 'event',
        'meta_key' => 'End Date',
        'orderby' => 'meta_value',
        'order' => 'ASC',
        'meta_query' => array(
            'relation' => 'OR',
            array(
                'key' => 'Start Date',
                'value' => $today,
                'compare' => '>='
            ),
            array(
                'key' => 'End Date',
                'value' => $nexttwoweeks,
                'compare' => '<='
            )
        ),
        'tax_query' => array(
            array(
                'taxonomy' => 'ongoing',
                'field' => 'slug',
                'terms' => 'yes'
            )
        )
    );