我试图创建一个包含10个产品的列表,这些产品的未来发布日期最近将被订购到最近。发布日期作为longtext存储在名为" publication_daet"的高级自定义字段中。以Ymd格式。我使用的代码如下,但结果不符合预期(结果低于代码块)。有什么想法吗?
<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日:首都
09/03/2015:孤儿黑卡游戏
07/10/2014:混乱的无政府主义之子的儿子
07/25/2013:Unicorno Frenzies
06/25/2015:中世纪学院
07/03/2014:Krosmaster Arena DuelPack
01/29/2015:已编辑
06/15/2010:3:16明星之间的大屠杀
04/29/2015:BattleTech Recon Lance Pack
2014/12/17:Duke Siege Engines Middle Ages
答案 0 :(得分:0)
您的自定义字段中的日期格式是否正确。您的日期格式必须是unix时间戳或格式为Y-m-d
。
但是,今天的日期格式不正确。与date_query
字段不同,自定义字段按字面比较,不会对任何值进行转换,因此要比较的值的格式必须匹配。简而言之,如果您的日期作为unix时间戳存储在自定义字段中,则您要比较的日期必须是unix时间戳,否则您的比较将失败。与日期格式相同,如果您的日期保存为Ymd
,则您要比较的格式必须为Ymd
。如果您的格式为Y-m-d
,则您要比较的格式必须为Y-m-d
。如果这些格式不匹配,那么您的比较将注定失败
要解决您的问题,请更改$today
的值以匹配与自定义字段相同的格式