【问题标题】:Wordpress - meta_query and orderby date meta?Wordpress - meta_query 和 orderby 日期元?
【发布时间】:2015-01-01 01:09:06
【问题描述】:

我有 3 个元字段,日期(日期格式的字符串)、位置和顾问。

设置 meta_key 后,我可以按日期字段拉取帖子和排序:

// get posts
$posts = get_posts(array(
    'post_type'     => 'event',
    'posts_per_page'    => -1,
    'meta_key'      => 'start_date',
    'orderby'       => 'meta_value_num',
    'order'         => 'DESC'
));

但是,我无法让它与更复杂的 meta_query 一起使用:

$args = array(
    'post_type' => 'uppy_events',
    'orderby'       => 'meta_value_num',
    'order'         => 'ASC',

    'meta_query' => array(
        array(
            'key' => $key,
            'value' => array($value),
            'compare' => '>='
            )
        ),
        'numberposts' => -1
    );

基本上我想提取所有元 start_date 大于今天日期的帖子,并按这些日期排序。

附带说明 - 你可以在说位置键和按日期键排序的情况下进行 meta_query 搜索吗?

感谢您的帮助...这是我第一次尝试按元排序,并找到了一些不错的帖子,但仍然无法理解。干杯

【问题讨论】:

    标签: php wordpress date sql-order-by


    【解决方案1】:

    我明白了这一点,因为我的帖子将我引向了另一个很好的例子。注释掉的 meta_query 的日期大于今天。另一种是使用不同的密钥。两者都有效!

        $today = date("Ymd");
    
        $args = array(
            'post_type' => 'uppy_events',
            'post_status' => 'publish',
            'meta_key' => 'event_date', 
            'orderby'       => 'meta_value_num',
            'order'         => 'ASC',
            'meta_query' => array(
                /* array(
                    'key' => 'event_date',
                    'value' => $today,
                    'compare' => '>='
                ) */
                array(
                    'key' => 'event_location',
                    'value' => 'vancouver',
                    'compare' => '='
                )
            ),
            'numberposts' => -1
        );
    

    【讨论】:

      猜你喜欢
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-18
      • 2017-09-23
      • 1970-01-01
      • 2017-03-04
      相关资源
      最近更新 更多