Wordpress query\u posts为非管理员用户生成奇怪的SQL查询

Wordpress query\u posts为非管理员用户生成奇怪的SQL查询,wordpress,Wordpress,我使用query_posts获取特定作者的第2页,我的查询是 query_posts(array( 'author' => $author_id, 'paged' => $paged, 'posts_per_page' => $posts_per_page, 'post_status' => 'publish', )); 对于管理员,生成以下SQL查询工作正常: SELECT SQL_CALC_FO

我使用query_posts获取特定作者的第2页,我的查询是

query_posts(array(
        'author' => $author_id,
        'paged' => $paged,
        'posts_per_page' => $posts_per_page,
        'post_status' => 'publish',
    ));
对于管理员,生成以下SQL查询工作正常:

SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND (wp_posts.post_author = 13) AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish')  ORDER BY wp_posts.post_date DESC LIMIT 10, 10"
但对于未登录或未登录的任何其他用户,不会执行SQL查询并返回null,生成以下查询:

SELECT SQL_CALC_FOUND_ROWS  wp_posts.* FROM wp_posts  WHERE 1=1  AND (wp_posts.post_author = 13) AND wp_posts.post_type = 'post' AND (( (  (  (  ( 1=2 )  )  )  ) AND wp_posts.post_status = 'publish' ))  ORDER BY wp_posts.post_date DESC LIMIT 20, 10"

[“posts”]=>

只是因为您正在传递作者id,所以它不会给您帖子。如果需要特定于作者的文章,请使用get_posts()方法将作者id作为作者参数传递。@Praveenkalal:传递作者id应显示与指定作者关联的文章(如果存在)。我不知道你为什么认为“它不会给你发帖”。查找
WP\u查询
类。我已经看到
1=2
与坏的
meta\u查询相关联的古怪。我不知道这是不是这个案子的问题。我会尝试在查询中查找任何筛选器。禁用你的插件。。。切换到默认主题…@s_ha_dum:你说得对,发生这种情况是因为角色范围器插件和用户需要“激活插件”功能,然后此查询工作正常,1=2不会出现。但正如您所看到的,不能向用户提供权利,这会带来安全风险。