Wordpress Events Orderby Meta Value Date



我有一些麻烦得到一个参数数组按日期排序事件列表在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' => '<='
            )                   
         )
    );

相关内容

最新更新