即使post_author设置为特定ID,get_posts也会返回所有作者的帖子

时间:2015-11-16 12:19:40

标签: wordpress wp-query


我有一个查询来获取自定义帖子类型" date"当前用户的帖子。查询有一些meta_query条件可以正常工作,但当前用户过滤器根本不起作用...
我不知道它是否重要但这个查询是作为ajax函数的一部分运行的。我已经确认当前用户已正确定义 这里是查询:

$curr_user = wp_get_current_user();
$date = array('2015-11-20', '2015-11-30')
$query_date_arg = array(
    'post_type' => 'date',
    'post_author' => $curr_user->ID,
    'posts_per_page' => -1,
    'meta_query' => array(
        'relation' => 'OR',
        array(//date singole comprese nel periodo $date
            'relation' => 'AND',
            array(
                'key' => 'wpcf-date',
                'value' => $date,
                'type' => 'DATE',
                'compare' => 'BETWEEN',
            ),
            array(
                'key' => 'wpcf-date-end',
                'compare' => 'NOT EXISTS',
            ),
        ),
        array( //periodi compresi nel periodo $date
            'relation' => 'AND',
            array(
                'key' => 'wpcf-date',
                'value' => $date,
                'type' => 'DATE',
                'compare' => 'BETWEEN',
            ),
            array(
                'key' => 'wpcf-date-end',
                'value' => $date,
                'type' => 'DATE',
                'compare' => 'BETWEEN',
            ),
        ), 
    ),
    'fields' => 'ids',
);
$dates_to_be_deleted = get_posts( $query_date_arg );

此查询应返回当前用户的帖子ID数组,这些帖子ID与meta_query条件匹配 问题是我获取了所有用户的帖子ID,而不仅仅是当前用户的帖子。

这是一个wordpress 4.3.1错误,或者,我认为......,我在查询中有一些错误?

我会感激任何帮助!

感谢
丹尼尔

1 个答案:

答案 0 :(得分:0)

请更改参数名称“post_author”,仅使用“author”。

'author'    => get_current_user_id(),

谢谢!!