showposts VS posts_per_page.showposts工作完美但不赞成!

Sco*_*t B 0 wordpress

我无法用postsposts替换posts_per_page以限制列表中返回的帖子数量.当我使用showposts时,根据我在showposts限制器中指定的帖子数量,正确显示结果菜单列表.但是,当我使用posts_per_page时,后限制器编号似乎无关紧要.结果列表显示所有帖子,超过限制器数.

例子:

这非常有效:

$myrecentposts = get_posts(array('post_not_in' => get_option('sticky_posts'), 'cat' => "-$cat,-$catHidden",'showposts' => $cb2_recent_count));
foreach($myrecentposts as  $idxrecent=>$post) {
Run Code Online (Sandbox Code Playgroud)

但是,当我在posts_per_page中进行子操作时,这不起作用......

$myrecentposts = get_posts(array('post_not_in' => get_option('sticky_posts'), 'cat' => "-$cat,-$catHidden",'posts_per_page' => $cb2_recent_count));
foreach($myrecentposts as  $idxrecent=>$post) {
Run Code Online (Sandbox Code Playgroud)

*我只是想让posts_per_page工作,因为我知道showposts已被弃用.

The*_*dic 5

showposts 弃用.但是,posts_per_page是用于query_posts(),或更具体地说WP_Query::query().

numberposts是等价的论据get_posts().

注意:我删除了有关错误处理内部参数的原始答案get_posts().

posts_per_pageget_posts()出于语义原因,它不是一个有效的论据,因为它表明了分页的想法,这get_posts()是不支持的.

为了清楚起见,并代表@ RichardM的评论,这里是我最初写的那个瘦小的;


get_posts()取决于如何在传递参数之前解析参数WP_Query.

我把它简化为真正的基础知识;

function get_posts($args = null)
{
    $defaults = array('numberposts' => 5);
    $r = wp_parse_args($args, $defaults);

    if (!empty($r['numberposts']))
        $r['posts_per_page'] = $r['numberposts'];

    $get_posts = new WP_Query;
    return $get_posts->query($r);
}
Run Code Online (Sandbox Code Playgroud)

看看如何numberposts覆盖posts_per_page,而不是计算posts_per_page正在传递的条件?