Php Wordpress按日期查询和订购
我正在尝试创建一个包含10种产品的列表,这些产品的发布日期从最近到未来。发布日期以长文本形式存储在一个名为“publication_daet”的高级自定义字段中,格式为Ymd。我正在使用的代码如下所示,但结果与预期不符(结果在代码块下方)。有什么想法吗Php Wordpress按日期查询和订购,php,wordpress,advanced-custom-fields,Php,Wordpress,Advanced Custom Fields,我正在尝试创建一个包含10种产品的列表,这些产品的发布日期从最近到未来。发布日期以长文本形式存储在一个名为“publication_daet”的高级自定义字段中,格式为Ymd。我正在使用的代码如下所示,但结果与预期不符(结果在代码块下方)。有什么想法吗 <section id="recent"> <ul class="row-fluid"> <?php $today = date('m/d/Y'); $args = array(
<section id="recent">
<ul class="row-fluid">
<?php
$today = date('m/d/Y');
$args = array(
'post_type' => 'product',
'showposts' => 10,
'meta_key' => 'publication_date',
'meta_value' => $today,
'meta_compare' => '>',
'order' => 'ASC',
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>
<li class="span3">
<a id="id-<?php the_id(); ?>" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<b><?php $date = DateTime::createFromFormat('Ymd', get_field('publication_date'));?><?php echo $date->format('m/d/Y'); ?></b>: <?php the_title(); ?>
</a>
</li><!-- /span3 -->
<?php endwhile; ?>
<?php wp_reset_query(); ?>
</ul><!-- /row-fluid -->
</section><!-- /recent -->
-
结果:
2013年11月20日:首都
2015年3月9日:孤儿黑卡游戏
2014年10月7日:无政府之子混乱之人
2013年7月25日:独角兽狂热
2015年6月25日:中世纪学院
2014年3月7日:克洛斯马斯特竞技场对决
2015年1月29日:修订
2010年6月15日:3:16星空中的大屠杀
2015年4月29日:战列科技侦察长枪组
2014年12月17日:杜克中世纪您自定义字段中的日期格式是正确的。您的日期格式需要是unix时间戳或采用
Y-m-d
格式
但是,今天日期的格式不正确。与date\u查询
字段不同,自定义字段按字面意思进行比较,不会对任何值进行转换,因此要比较的值的格式必须匹配。简而言之,如果您的日期作为unix时间戳存储在自定义字段中,则要比较的日期必须是unix时间戳,否则比较将失败。与日期格式相同,如果日期保存为Ymd
,则要比较的格式必须为Ymd
。如果格式为Y-m-d
,则要比较的格式必须为Y-m-d
。如果这些格式不匹配,您的比较就注定失败
要解决此问题,请更改
$today
的值,使其与自定义字段的格式相同自定义字段中的日期格式正确。您的日期格式需要是unix时间戳或采用Y-m-d
格式
但是,今天日期的格式不正确。与date\u查询
字段不同,自定义字段按字面意思进行比较,不会对任何值进行转换,因此要比较的值的格式必须匹配。简而言之,如果您的日期作为unix时间戳存储在自定义字段中,则要比较的日期必须是unix时间戳,否则比较将失败。与日期格式相同,如果日期保存为Ymd
,则要比较的格式必须为Ymd
。如果格式为Y-m-d
,则要比较的格式必须为Y-m-d
。如果这些格式不匹配,您的比较就注定失败
要解决此问题,请更改$today
的值,使其与自定义字段的格式相同