WordPress忽略限制/POSTS_PER_PAGE,尽管它在wp_Query中

时间:2015-01-27 作者:mattpark22

使用WP查询:

$myquery = new WP_Query( array(
    \'posts_per_page\' => $instance[\'count\'],
    \'meta_key\' => \'mywp_post_views_count\',
    \'orderby\' => \'meta_value_num\',
    \'order\' => \'DESC\'
) );
让我们获取请求:

echo $myquery->request;
它返回:

SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
    FROM wp_posts
    INNER JOIN wp_postmeta
    ON ( wp_posts.ID = wp_postmeta.post_id )
    WHERE
        1=1
        AND wp_posts.post_type = \'post\'
        AND ( wp_posts.post_status = \'publish\' OR wp_posts.post_status = \'private )
        AND ( wp_postmeta.meta_key = \'mywp_post_views_count\' )
    GROUP BY wp_posts.ID
    ORDER BY wp_postmeta.meta_value+0 DESC
    LIMIT 0, 5
这在MySQL中运行正常,给了我5个帖子ID。但WordPress返回120个结果!

echo \'$myquery = \' . count( $myquery->posts );
返回:$myquery=120

我在循环时检查过:

 while ( $myquery->have_posts() ) : $myquery->the_post();
它确实输出了120个独特的帖子,而不是预期的5个帖子。

我可以确认:

echo \'Count: \'.$instance[\'count\'];
返回:计数:5

我正在运行最新的稳定WordPress(4.1),除了ACF(高级自定义字段)之外,没有任何插件-只是我的自定义主题。禁用此插件没有任何效果,默认WordPress主题(2015)也有同样的问题。

我很难理解为什么会这样。

1 个回复
SO网友:Athoxx

尝试添加\'nopaging\' => false 到您的查询构造。

我只是有同样的问题,它为我解决了。

结束

相关推荐

Custom taxonomy template loop

我知道这个问题问得很多,但我找不到一个适合我的答案。我制作了一些自定义帖子类型和一些自定义分类法。我有自定义的帖子类型Products 并与分类法相联系Product Categories. 当用户在产品页面上单击产品类别时,我想向他显示该特定类别中的所有产品。问题是,产品类别将约为50种。现在我发现的唯一一件事就是把这个<?php $loop = new WP_Query( array( \'post_type\' => \'all_products\', \'posts_per_page\