Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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 WP_按自定义帖子类型的值进行查询筛选_Wordpress - Fatal编程技术网

Wordpress WP_按自定义帖子类型的值进行查询筛选

Wordpress WP_按自定义帖子类型的值进行查询筛选,wordpress,Wordpress,我无法按自定义帖子类型筛选结果 这是我的while循环,它返回所有项目。我需要按日期筛选,只显示比CURDATE早的日期 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $auction_query = new WP_Query(); $auction_query->query('post_type=auctions&orderby=meta_value&meta_key=auction_det

我无法按自定义帖子类型筛选结果

这是我的while循环,它返回所有项目。我需要按日期筛选,只显示比CURDATE早的日期

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$auction_query = new WP_Query();
$auction_query->query('post_type=auctions&orderby=meta_value&meta_key=auction_details&paged='.$paged.'&posts_per_page=20');
在我的wp_PosteTa表中,我有以下数据

meta_id: [id of meta row]
post_id: [id of post]
meta_key: auction_details
meta_value: a:6:{s:12:"auction_date";s:10:"2013-07-27";s:12:"auction_time";s:21:"9am Personal Property";s:16:"auction_location";s:44:"New Providence,";s:0:""

当与meta_key auction_details(仅显示拍卖日期早于今天日期的帖子)配对时,我需要根据meta value列中的拍卖日期值进行过滤。

使用CURDATE没有意义,因为用于存储post_元数据的MySQL字段类型是字符串,而不是日期

考虑存储您的时间和日期值

在单独的post meta字段中,以及 作为unix时间戳数字值。 这样就很容易用>或<比较来限制查询,比如

$args = array(
    'meta_query' => array(
        array(
            'key' => 'auction_time',
            'value' => date_i18n( 'U' ),
            'compare' => '<',
        )
    )
);
$auction_query = new WP_Query( $args );
如果您想按此字段排序,请确保按“meta_value_num”而不是通常的“meta_value”排序,因为后者会按词汇而不是数字排序


警告:在使用WordPress转换时间戳时,小心使用date_i18n(WordPress使用您的WordPress时区首选项提供的函数),而不是使用PHP中的系统范围时区设置来使用本机PHP函数。

这部分:meta_key=post_type=auctions看起来很奇怪。我认为如果拍卖日期是一个特殊的元密钥。