使用值数组对日期范围执行Meta_Query

时间:2014-02-01 作者:user537137

如果自定义字段数组包含的日期在指定范围内,如何执行查询以返回帖子?下面的查询基本上是我想要的,但它不起作用。。。

// the income_dates array looks like this
// a:3:{i:0;s:10:"2014-02-01";i:1;s:10:"2014-03-01";i:2;s:10:"2014-03-29";}

$today = date("Y-m-d");
$date1 = date("Y-m-d", strtotime($today . "-1 Month"));
$date2 = date("Y-m-d", strtotime($today . "+1 Month"));

$args = array(
    \'post_type\' => \'income\',
    \'meta_query\' => array( 
        array(
            \'key\' => \'income_dates\',
            \'value\' => $date1,
            \'type\'  => \'date\',
            \'compare\' => \'>\'
        ),
        array(
            \'key\' => \'income_dates\',
            \'value\' => $date2,
            \'type\'  => \'date\',
            \'compare\' => \'<\'
        ),
    )
); 

2 个回复
SO网友:yunieski dieguez garcia

我需要比今天晚些时候获得带有类型event和自定义字段“date”的帖子,这个代码示例对我来说非常适合,我希望它能帮助处于类似情况的人。

            $today = date("Y-m-d");
            $today1 = date("Ymd", strtotime("$today"));
            $custom_meta = array(
                array(
                    \'key\' => \'data_de_inicio\',
                    \'value\'=>$today1,
                    \'compare\'=>\'>\',
                    \'type\'=>\'date\',
                ),
            );
            $query = new WP_Query(array(
                \'post_type\'=>\'event\',
                \'showposts\'=>\'3\',
                \'orderby\'=>\'meta_value\',
                \'meta_key\'=>\'data_de_inicio\',
                \'order\'=>\'asc\',
                \'meta_query\'=>$custom_meta,
                )
            );

SO网友:cybmeta

我建议不要将元数据存储为array 因为(我认为)不是你需要的。我认为您确实需要使用自己的键/值对单独存储每个元值,而不是使用序列化值存储单个键。以这种方式完成后,您可以使用BETWEEN 比较:

$today = date("Y-m-d");
//\'BETWEEN\' comparison with \'type\' date only works with dates in format YYYYMMDD.
//See http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters 
$date1 = date("YYYYMMDD", strtotime($today . "-1 Month"));
$date2 = date("YYYYMMDD", strtotime($today . "+1 Month"));

$args = array(
    \'post_type\' => \'income\',
    \'meta_query\' => array( 
     array(
         \'key\' => \'income_dates\',
         \'value\' =>  array($date1,$date2),
         \'type\'  => \'date\',
         \'compare\' => \'BETWEEN\'
         ),
     )
); 

结束

相关推荐

忽略wp_Query搜索中的图像URL

我正在使用wp\\u查询进行关键字搜索,如下所示:$wp_query = new WP_Query( \'s=\' . $_GET[\'s\'] ); 它返回的帖子$_GET[\'s\'] 在它的一个图像URL中,我不希望发生这种情况。我想从搜索中排除任何附件URL。这是否可以使用wp\\u查询参数?也许是一种只搜索帖子标题/正文的方法?