How to limit get_posts()?

时间:2014-09-24 作者:Ciprian

过去三天我一直在研究这个。我要限制get_posts().

我有这段代码:

// all filters should be applied here
$args = array(
    \'nopaging\'                  => true,
    \'post_type\'                 => get_option(\'ip_slug\'),
    \'posts_per_page\'            => $ip_ipp,
    \'limit\'                     => 100,
    \'orderby\'                   => $ip_order,
    \'order\'                     => $ip_order_asc_desc,
    \'author\'                    => $author,
    \'suppress_filters\'          => false,

    \'meta_key\' => $ip_meta,
    \'meta_query\' => array(
        array(
            \'key\' => $ip_key,
        )
    ),
    \'cache_results\' => false,
    \'update_post_term_cache\' => false,
    \'update_post_meta_cache\' => false,
    \'no_found_rows\' => true,
);
$posts = get_posts($args);
//
Thelimit 参数不起作用。

UPDATE #1: 我想用,比如说,5 每页发表文章,并在同一页上使用多个查询get_posts() (不是query_posts, 不WP_Query) 我想将数据库查询限制为100. 我不能用paged 参数,因为有多个动态创建的循环。

5 个回复
最合适的回答,由SO网友:Ciprian 整理而成

我已经解决了这个问题,我使用了posts_per_page 值为的参数100 并已使用jPages 用于jQuery分页。

Explanation: 在我的情况下,由于我需要获得有限的职位,210 - 我想同时使用分页和查询限制。因为这似乎不可能使用get_posts(), 我用了posts_per_page 值为的参数210 并实现了jPages分页。虽然不是最优雅的解决方案,但它确实起到了作用。

SO网友:Jonathan

您可以使用posts_per_pagenumberposts.

http://codex.wordpress.org/Template_Tags/get_posts#Parameters

编辑:关于您的编辑。您不能拥有posts_per_page 不同于LIMIT 在SQL查询中。get_posts() creates an instance of WP_Query and returns it 使用posts_per_page as the LIMIT.

SO网友:Otto

“limit”参数不起作用,因为在get\\u posts或WordPress中的任何其他查询中都没有此类参数。

您可以使用posts_per_page 设置要检索的帖子数量,以及offset 让它跳过一定数量的帖子。这些是您可以使用的唯一参数,它们一起更改所执行的SQL查询中的结果限制。

SO网友:Parnable

您启用了阻止分页的下一个参数,因此任何限制都失去意义:

\'nopaging\' => true

将其切换到“禁用”或删除。顺便说一下,在最新的WP版本中,get\\u posts()函数默认情况下将帖子限制为5篇。或者您可以使用posts\\u per\\u page属性直接设置限制,或者使用管理面板(设置->阅读)进行设置。

SO网友:Bala Murugan

您可以使用pre_get_post-钩子以获取要显示的帖子数:

add_action( \'pre_get_posts\', \'your_function_name\' ); 

结束

相关推荐

Limit Loop to One Category

我试图将我的循环限制为一个类别。这是循环:<?php $counter = 1; //start counter $grids = 3; //Grids per row global $query_string; //Need this to make pagination work /*Setting up our custom query (In here we are setting it to show 12 posts