WordPress按元值排序

时间:2014-06-16 13:25:30

标签: php wordpress events post

我正在努力解决以下问题: 我安装了一个插件(Event Dates)。 不,我想在我的主页上发布活动。我有99.9%的工作时间。 但是排序不起作用。

它在发布日期排序,但需要按事件日期排序。 事件日期在wp_postmeta表中,但我无法对其进行排序。

以下是更多信息:

<?php
$args=array(
'post_type' => 'tribe_events',
'post_status' => 'publish',
'posts_per_page' => 5,
'meta_key'   => '_EventStartDate',
'orderby' => 'meta_value_num',
'order' => 'DESC');

$my_query = '';
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<?php $key_2_value = get_post_meta(get_the_ID(), '_EventStartDate', true); ?>
<?php echo '<div class="ex_agendapost_title">'.
                date_i18n( 'd F', strtotime( $key_2_value )   ).'</div>';?>
<div class="ex_agenda_event"><a href="<?php the_permalink() ?>" 
         rel="bookmark" title="<?php   the_title_attribute(); ?>">
    <?php the_title(); ?> &raquo;</a></div>
<?php
endwhile;
}
wp_reset_query();
?>

它只是不会排序。 有什么想法吗?

微米。

2 个答案:

答案 0 :(得分:0)

您可以在WP_Query中使用orderby

$query = new WP_Query( array ( 'post_type' => 'product', 'orderby' => 'meta_value', 'meta_key' => 'price' ) );

Reference

答案 1 :(得分:0)

以下是一个示例,仅显示未来的日期事件和日期顺序(最新的第一个)

您必须更改字段名称和帖子类型名称:

$currentDate = (int) date('Ymd');
$eventsResult = new WP_Query( array ( 'post_type' => 'event', 'post_status' => 'publish', 'posts_per_page' => '3', 'orderby' => 'meta_value_num', 'meta_key' => 'event_date', 'order' => 'ASC', 'meta_query' => array( array( 'key' => 'event_date', 'value' => $currentDate, 'compare' => '>', 'type' => 'NUMERIC' ) ) ) );