'class-wp-query.php'文件

时间:2018-03-16 17:22:13

标签: php arrays wordpress arguments

我有这段代码:

    // If a post number is specified, load that post
    if ( $q['p'] ) {
        $where .= " AND {$wpdb->posts}.ID = " . $q['p'];
    } elseif ( $q['post__in'] ) {
        $post__in = implode(',', array_map( 'absint', $q['post__in'] ));
        $where .= " AND {$wpdb->posts}.ID IN ($post__in)";
    } elseif ( $q['post__not_in'] ) {
        $post__not_in = implode(',',  array_map( 'absint', $q['post__not_in'] ));
        $where .= " AND {$wpdb->posts}.ID NOT IN ($post__not_in)";
    }

但是当它运行时我会收到这些错误:

警告:array_map():参数#2应该是第1918行的数组

警告:implode():第1918行传递的参数无效

这是指这一行: $ post__in = implode(',',array_map('absint',$ q ['post__in']));

我该如何解决这个问题?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

有些东西正在查询WordPress的帖子并传入不正确的参数。具体来说,传入的post__in参数需要是一个整数值数组。现在,正在传递其他东西。

如果您最近编写了自定义代码(特别是get_posts()WP_Query等),请尝试撤消这些更改,直到它再次运行。否则,请尝试逐个停用插件和/或主题,直到它再次运行。