私はこのウェブサイトのイベントページに取り組んできました
すべてうまくいっていますが、2つの問題があります。
<?php meta('event-end-date'); ?>
を使用してpost_metaを自分のページに出力すると、私の結果のフォーマットは2014年8月12日から12日になります。これがコードです:
<ul class="event_list_view">
<?php // Let's get the data we need to loop through below
//$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$d = date("m-d-Y");
$today = date('Y-m-d', strtotime('-6 hours')); //define "today" format; note timezone offset of -6 hours
$args = array(
'post_type' => 'event',
'posts_per_page' => '3',
'post_status' => 'publish',
'meta_key' => 'event-start-date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'event-end-date',
'meta-value' => date('Y-m-d', strtotime('-6 hours')), //value of "order-date" custom field
'compare' => '>=', //show events greater than or equal to today
'type' => 'CHAR'
)
)
);
$the_query = new WP_Query( $args ); ?>
<?php if ( $the_query->have_posts() ) : ?>
<!-- pagination here -->
<!-- the loop -->
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<li class="clearfix">
<div class="featured_tag"></div>
<?php if ( '' != get_the_post_thumbnail() ) { ?>
<a class="post_img" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php the_post_thumbnail('event-thumbnail'); ?>
</a>
<?php } else { ?>
<a class="post_img" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<img src="http://aishaarab.com/wp-content/uploads/2014/08/DefaultEvent-125x75.png" alt="" />
</a>
<?php } ?>
<h3><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
<p class="timing">
<span>Start Date: </span><?php meta('event-start-date'); ?><br>
<span>End Date: </span><?php meta('event-end-date'); ?><br>
<span>Time: </span><?php meta('event_time'); ?><br>
</p>
<p class="address"><span>Location :</span> <br><?php meta('event_address'); ?>, <?php meta('event_city'); ?>, <?php meta('event_state'); ?>, <?php meta('event_country'); ?></p>
<div class="clear"></div>
<p class="bottom">
<a class="read_more" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">Read More</a>
</p>
</li>
<!-- #post-<?php the_ID(); ?> -->
<?php endwhile; else: ?>
<p>
<?php _e('Sorry, no events matched your criteria.'); ?>
</p>
<?php endif; ?> <?php //wp_reset_query(); ?>
</ul>
あなたは間違った時間文字列と時間を比較しています:
変化する:
'meta-value' => date('Y-m-d', strtotime('-6 hours')), //value of "order-date"
これに
'value' => date('m-d-Y', strtotime('-6 hours')), //value of "order-date"
あなたの時間文字列はm-d-Yフォーマットであり、あなたは間違っているY-m-dに対してチェックしているからです。
NOTE
上記のトリックがうまくいかない場合は、データベースにUNIXタイムスタンプで時間を保存することをお勧めします。その方法とその理由については、これらのリンクを読んでください。