get_posts not returning all posts

2019-03-09 18:22发布

I have to mount the blog posts manually, but I'm not sure if this is the correct way to work, It only brings 9 pages, with 4 posts each, but the blog has 83 posts!

<?php
    $paged = get_query_var('paged');
    $args = array(
        'numberposts'       => 4,
        'offset'            => $paged*4,
        'orderby'           => 'post_date',
        'order'             => 'DESC',
        'post_type'         => 'post',
        'post_status'       => 'publish',
        'suppress_filters'  => true
    );
    $posts_array = get_posts( $args );
?>

Thanks anyway.

标签: wordpress
2条回答
Explosion°爆炸
2楼-- · 2019-03-09 18:39

The below note is from this codex section.

Note: With use of the offset, the above query should be used only on a category that has more than one post in it, otherwise there'll be no output.

So in-order to display all posts, there should be at-least 2 posts in each categories.

You can try Loops to get all posts. Check The Loop in Action also.

查看更多
可以哭但决不认输i
3楼-- · 2019-03-09 18:48

Problem is your 'numberposts' is set to 4 Put it at -1 to get all posts:

 'numberposts'       => -1,

If you don't set numberposts here, WordPress will pull the number of posts from your Dashboard settings (under Settings -> Reading)

查看更多
登录 后发表回答