您好,我想按活动日期对Workshop活动进行排序吗?我可以按其他meta_key(城镇,领导者,国家等)对数据进行排序。但不是在活动日期之前。
这里有元“国家”,但是因为它们彼此相邻,所以UTC没有区别。
在CBM2函数中,我设置了“日期”字段,它是meta box function.php的一部分
<!-- language: lang-php -->
$cmb_data->add_field( array(
'name' => __( 'Event Date', 'workshops' ),
'desc' => __( 'Event Date', 'workshops' ),
'id' => $prefix . 'event_date',
'type' => 'text_date',
'date_format' => 'd-m-Y',
) ) ;
这是CPT模板workshops.php
<!-- language: lang-php -->
<section id="" class="">
<div class="">
<?php
$args = array(
'post_type' => 'workshops',
'posts_per_page' => 10,
'meta_key' => 'workshop_data_event_date',
'orderby' => 'meta_value',
'order' => 'DESC'
);
$articles = new WP_Query( $args );
if ( $articles->have_posts() ) : $articles->the_post();
echo '<div class="cptul-stripe-2 article-post__stats">';
foreach ( $articles->posts as $article ) {
// var_dump($article);
echo '<div class="cptli-stripe-2__wrap">
<div class="cptli-stripe-2--header">
<div><span class="name">'
. get_post_meta( $article->ID, 'workshop_data_leader', true )
. '</span>
<span class="nameWhat"> povede workshop</span>
</div>
<a class="stripe-title-mid" href="' . get_permalink( $article->ID ) . '">'
. $article->post_title . '</a>
<ul>
<li id="event-date" class="article-post__event-date"><span
class="article-post__stats-icon">'
. webovkar_get_svg( array( 'icon' => 'calendar' ) ) . '</span>'
. get_post_meta( $article->ID, 'workshop_data_event_date', true ) .
'</li><li class="article-post__event-town"><span class="article-post__stats-icon"> '
. webovkar_get_svg( array( 'icon' => 'mmarker' ) ) . '</span>'
. get_post_meta( $article->ID, 'workshop_data_town', true ) . ' | '
. get_post_meta( $article->ID, 'workshop_data_country', true ) .
'</li></ul> </div>
<div class="cptli-stripe-2--data">'
. apply_filters( 'the_content', get_post_meta( $article->ID, 'workshop_data_excerpt',
true ) ) .
'</div>
</div>';
}
echo '</div>';
endif; ?>
<?php wp_reset_postdata(); ?>
</div>
</section>
在玩了一点代码之后,我找到了适合我的解决方案,但我不知道这是否是正确的代码样式。我必须移至时间戳记土地才能使其正常工作。
$args = array(
'post_type' => 'workshops',
'meta_query' => array(
array(
'key' => 'workshop_data_event_date',
'value' => current_time('timestamp'),
'compare' => '>'
)
),
'meta_type' => 'text_date_timestamp',
'orderby' => 'meta_value_num',
'order' => 'DESC'
);
在foreach
环路
$datum = get_post_meta( $article->ID, 'workshop_data_event_date', true );
和Imdate()
用来通过回显将UNIX转换为前端的日期格式
date('d-m-Y', $datum)
编辑:因为我需要在头版上显示将在未来30天内发生的事件,所以我已将此查询添加到头版。
$today = current_time('timestamp');
$featuremonth = current_time('timestamp') + 2629743 ; // num = UNIX 30 days
$meta_query = array(
'value' => array( $today, $featuremonth),
'compare' => 'BETWEEN',
'type' => 'NUMERIC'
);
$args = array(
'post_type' => 'workshops',
'posts_per_page' => -1,
'meta_key' => 'workshop_data_event_date',
'orderby' => 'meta_value',
'order' => 'DESC',
'meta_query' => array( $meta_query )
);
$articles = new WP_Query( $args );
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句