Wordpress - meta_query和orderby日期元?

时间:2014-11-04 23:31:42

标签: php wordpress date sql-order-by

我有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
    );

基本上我想在这些日期之前提取meta start_date大于今天日期和顺序的所有帖子。

作为旁注 - 您可以对说的位置键和仍然按日期键进行meta_query搜索吗?

任何帮助都表示赞赏......这是我第一次尝试通过meta订购,并找到了一些好的帖子,但仍无法绕过它。干杯

1 个答案:

答案 0 :(得分:1)

K我想到这一点,因为我的帖子引导我到另一个好榜样。注释掉的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
    );