我有自定义帖子类型的活动。我想只在今天或即将到来的时候展示活动。
我遇到的问题是,如果我有多个事件,订单不会按照日期进行。
我确实尝试回显时间戳并且它已关闭 - 它需要转换为php时间戳 - 有没有办法在jquery中将时间戳除以1000之后保存它?或者我完全离开这里
任何帮助将不胜感激!
自定义字段
<input type="text" class="datepicker" size="30" />
<input type="hidden" id="event_date" size="30" />
datepicker js
jQuery(document).ready(function(){
jQuery('.datepicker').datepicker({
dateFormat : 'DD, MM dd',
altField: "#event_date",
altFormat: '@'
});
});
回调php
<?php $classarg = array('post_type' => 'class', 'meta_query' => array(array('key' => 'event_date', 'value' => time(), 'compare' => '>=',),),'orderby'=> 'key', 'posts_per_page'=> '-1', 'order'=>'ASC');
$classes = new WP_Query($classarg ); if ( $classes->have_posts() ) {while ( $classes->have_posts() ) { $classes->the_post();?>
<h2><?php the_title();?></h2>
<?php the_content();?>
<?php }} wp_reset_postdata();?>
答案 0 :(得分:0)
我意识到我错过了meta_key
参数,而orderby
必须是meta_value_num
所以现在可以使用
<?php
$classarg= array(
'post_type' => 'class',
'posts_per_page' => -1,
'nopaging' => true,
'post_status' => 'publish',
'meta_key' => 'event_date',
'meta_query' => array(array('key' => 'event_date', 'value' => time(), 'compare' => '>=',),),
'orderby'=> 'meta_value_num',
'order' => 'ASC'
);
$classes = new WP_Query($classarg );
if ( $classes->have_posts() ): while ( $classes->have_posts() ) : $classes->the_post();?>
<h2><?php the_title();?></h2>
<?php the_content();?>
<?php endwhile; endif; wp_reset_postdata();?>