我有一些麻烦得到一个参数数组按日期排序事件列表在Wordpress。我在Stack Overflow和其他地方找到了一些建议的解决方案,但是经过大量的尝试和错误之后,似乎没有一个解决方案有效。
这没什么特别的,而且应该比这简单得多。也许这样更容易,只是我想多了?如有任何帮助,不胜感激。
我有一个自定义的日期字段内的帖子使用插件http://www.advancedcustomfields.com,字段名在数据库是"event_date"。
我尝试了以下各种形式:
$args = array(
'post_status' => 'publish',
'meta_key' => 'event_date',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'posts_per_page' => 6,
'paged' => $paged,
'post__not_in' => $exclude_array
);
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query($args);
$default_excerpt_length = 250;
:
$args = array(
'post_status' => 'publish',
'meta_key' => 'event_date',
'meta_value_num' => time(),
'meta_compare' => '>=',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'posts_per_page' => 6,
'paged' => $paged,
'post__not_in' => $exclude_array
);
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query($args);
$default_excerpt_length = 250;
:
$today = date('Y-m-d');
query_posts(array(
'post_type' => 'events',
'posts_per_page' => 6,
'paged' => $paged,
'meta_key' => 'event_date',
'orderby' => 'meta_value',
'order' => 'DESC',
'meta_query' => array(
array(
'key' => 'event_date',
'meta-value' => $value,
'value' => $today,
'compare' => '>=',
'type' => 'CHAR'
)
)
));
这最终导致了我需要的解决方案:http://www.advancedcustomfields.com/resources/field-types/date-picker/
我最终将高级自定义字段设置更改为yymmdd,通过该url推荐。
这是我用来查询的帖子:
$args = array(
'post_status' => 'publish',
'posts_per_page' => 6,
'paged' => $paged,
'meta_key' => 'event_date',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
这是我用来调整页面上日期的视觉输出:
<?php
$source = get_field('event_date');
$date = new DateTime($source);
echo $date->format('F j, Y');
?>
在搜索了多个类似的帖子后,我把其他各种SO帖子的部分解决方案放在一起,希望它能帮助别人。
我有一个名为"日期"的自定义元键(我知道命名习惯不好),这个查询显示了将来所有具有自定义"日期"元字段的帖子,按最接近今天排序。
$args = array(
'post_type' => 'training-course',
'posts_per_page' => '-1',
'meta_key' => 'date',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'date',
'value' => date("Ymd"), // date format error
'compare' => '<='
)
)
);