Php meta_查询中的逻辑wordpress查询

Php meta_查询中的逻辑wordpress查询,php,mysql,sql,wordpress,meta-query,Php,Mysql,Sql,Wordpress,Meta Query,我目前正在构建一个pre_get_posts函数,该函数将执行以下操作: 从我设置的过滤器中筛选出来,但我还需要一些日期筛选逻辑,例如,如果我有一个 以1日至15日为例: 如果 Filter=从第2名到第15名=项目显示 Filter=从第一个到第十二个=项目显示 Filter=从第三个到第十个=项目显示 Filter=从1号到15号=项目显示 基本上,如果开始日期介于项目日期之间,或者如果结束日期介于项目日期之间 这是我到目前为止写的问题: $meta_query = array(

我目前正在构建一个pre_get_posts函数,该函数将执行以下操作:

从我设置的过滤器中筛选出来,但我还需要一些日期筛选逻辑,例如,如果我有一个 以1日至15日为例: 如果

  • Filter=从第2名到第15名=项目显示

  • Filter=从第一个到第十二个=项目显示

  • Filter=从第三个到第十个=项目显示

  • Filter=从1号到15号=项目显示

  • 基本上,如果开始日期介于项目日期之间,或者如果结束日期介于项目日期之间

    这是我到目前为止写的问题:

    $meta_query = array(
            'relation' => 'AND',
            array(
                array(
                    'key' => 'place',
                    'value' => $place,
                    'compare' => 'LIKE',
                ),
                array(
                    'key' => 'industry',
                    'value' => $industry,
                    'compare' => 'LIKE',
                ),
                array(
                    'key' => 'type',
                    'value' => $type,
                    'compare' => 'LIKE',
                ),
    
            ),
            array(
                'relation' => 'OR',
                array(
                    'key' => 'date_start',
                    'type' => 'DATE',
                    'value' => $date_start_formatted,
                    'compare' => '=',
                ),
                array(
                    'key' => 'date_end',
                    'type' => 'DATE',
                    'value' => $date_end_formatted,
                    'compare' => '=',
                ),
            ),
            array(
                'relation' => 'OR',
                array(
                    'key' => 'date_start',
                    'type' => 'DATE',
                    'value' => array($date_start_formatted, $date_end_formatted),
                    'compare' => 'BETWEEN',
                ),
                array(
                    'key' => 'date_end',
                    'type' => 'DATE',
                    'value' => array($date_end_formatted, $date_start_formatted),
                    'compare' => 'BETWEEN',
                ),
            ),
    
    但是逻辑似乎失败了,如果我从示例中选择选项3,项目就不会出现。
    非常感谢您的帮助或指导

    您的代码似乎与您期望的一样。开始日期或结束日期不在3号和10号之间。但是如果筛选的日期范围介于项目的开始日期和结束日期之间,您希望它显示出来,对吗?你需要一些不同的比较逻辑。“我走对了吗?”@JamesHamann是的,所以这是一个没有任何争议的情况,在这种情况下,有没有办法继续展示这个项目?使用不同的逻辑,代码的行为似乎与您预期的一样。开始日期或结束日期不在3号和10号之间。但是如果筛选的日期范围介于项目的开始日期和结束日期之间,您希望它显示出来,对吗?你需要一些不同的比较逻辑。“我走对了吗?”@JamesHamann是的,所以这是一个没有任何争议的情况,在这种情况下,有没有办法继续展示这个项目?逻辑不同