Do you want to display all your WordPress posts on one page? Recently one of our readers wanted to create an archives page and show all WordPress posts on a single page. In this article, we will show you how to display all your WordPress posts on one page without pagination.
Why and When to Display All Posts on One Page?
WordPress comes with built in archive pages for each category, tags, author, and date.
Many site owners however prefer to create custom archives page for their site. The archives page usually highlight their popular posts, display a date based compact archive, list categories, or display tag clouds, and more. Take a look at WPBeginner’s archives page as an example.
Some blogs prefer to simply display a list of all their WordPress post titles on one page.
Video Tutorial
If you don’t like video tutorials or want to move at your own pace, then continue reading the instructions below.
Showing All WordPress Posts on One Page
There are many different ways to display all your WordPress posts on a single page. You can display posts on a page with a shortcode, you can display posts on a page using a plugin, and lastly you can display all posts on a page using a custom template and loop.
We will cover all three methods starting with the most beginner friendly one.
Method 1: Using Display Posts Shortcode Plugin
First thing you need to do is install and activate the Display Posts Shortcode plugin. For more details, see our step by step guide on how to install a WordPress plugin.
This plugin works out of the box, and there are not settings for you to configure.
Go ahead and create a new page and call it Archives or any other title. After that, you need to paste the following shortcode in your page.
[display-posts posts_per_page="1000" order="DESC"]
This shortcode will simply display a list of all your post titles in a chronological order. It is set to display maximum 1000 posts per page.
If you have more than a thousand posts, then you can change that. You can also change the post order to ASC which will display posts in a reverse chronological order (older posts first).
While you could use the display posts shortcode to show excerpts, thumbnails, and other related information, we don’t recommend doing that. When you are listing all your posts on a single page, this page will be long, and you want to make sure it’s simple and fast. Just displaying post titles is sufficient for archives page of this style.
If you want to display posts on page based on category or other parameters, you can do so by following the detailed usage instructions on their documentation page.
Method 2: Using Simple Yearly Archive Plugin
Showing all your WordPress posts on a single page can make it too long to scroll. You can fix that by showing a list of each year. Users can then click on a year to expand it and see the posts published that year.
First thing you need to do is install and activate the Simple Yearly Archive plugin.
Upon activation, you need to go to Settings » Simple Yearly Archive page to configure plugin settings.
The plugin allows you to display list of posts in a variety of ways. You can show them all under links to yearly archives, or you can show them under collapsible years.
If you want to display them under collapsible years, then you need to add <div> and </div> next to the option ‘Before / After (Year headline)’.
Rest of the plugin options are quite self-explanatory. You can set them up according to your needs.
Don’t forget to click on the save changes button to store your settings.
Now to display all your posts on a page, you just need to add [SimpleYearlyArchive]
shortcode to the page of your choice.
The plugin provides a range of parameters that can be used with the shortcode. You can look at the parameters on plugin’s documentation page.
Method 3: Display All WordPress Posts in One Page with Template Code
While using a plugin to display all posts in one page is the easiest way, some of you may want to learn how to do it with page templates code.
First you will need to create a custom page template and copy the styling from your page.php file.
After that, you will use a loop below to display all posts in one page.
<?php // the query $wpb_all_query = new WP_Query(array('post_type'=>'post', 'post_status'=>'publish', 'posts_per_page'=>-1)); ?> <?php if ( $wpb_all_query->have_posts() ) : ?> <ul> <!-- the loop --> <?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; ?> <!-- end of the loop --> </ul> <?php wp_reset_postdata(); ?> <?php else : ?> <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p> <?php endif; ?>
If the above code instructions does not make sense, the we recommend that you use method 1.
We hope this article helped you display all your WordPress posts on one page. You may also want to see our guide on 8 proven methods to promote old posts in WordPress.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Hi – I am using Panorama Premium, and have used Method 1: Using Display Posts Shortcode Plugin. However, it looks very strange. The bullets are not on the same line as the post titles, and the post titles are boxed in. Can someone help me? What can I do to preferably make it look as the example above (a nice bulleted list) or alternatively how to remove the bullets.
Best regards Lena
+1 on method #3. I’d much rather do it that way than have another plugin installed — they tend to get out of hand if you’re not careful.
how do you make all your blogs appear “bulleted” in your BLOGS Page with their respective pictures as the bullet icon?
Thanks, It’s working for me.
Thank you so much! I just used your shortcode and it works! I have never thought that it so simple!
Very good article,
Thank you
Thank you for this! I am using the method #3. But I limited the posts to only show 5. I am having trouble getting the pagination to work. Any thoughts?
Exactly what I was looking out for which searching to customize my archive page. The code snippet helped in showing thumbnail along with title on archive page. However, instead of retrieving all posts of the blog, I retrieve all post belonging to a tag, category or date. Thanks.
please help i am using a template one post 28 line but not display all post
and Read More showing but click the read more not display any option for all post data show please help me.
I am using f2 theme but i am not much satisfied. I want to view all my posts on homepage.
This is how my website looks
Hi thanks for this post! I would like to display all the posts of a certain category on a page using a shortcode. But I want to include the title, the main text (content) and the featured image. Is there a way to do this with a shortcode?
I also wanted to do it like this
Great post, Display Posts Shortcode plugin is awesome

Thanks
I guess you didn’t try the plugin Custom Content Shortcode. That plugin is awesome for things like this and every other custom query without touching php.
Read the reviews and/or install and read the documentation under settings. I’m sure you will never uninstall it and install it on every website you build!
Could you give us an example of each of these types that we could see? And can you create more than one archives page for different topics you cover in your blog?
Please see plugin documentation for more examples. Yes you can create more than one archives page for different topics if you want. But here is a better way to display topics in navigation menu in WordPress.
That is nice, but what I really want is to be able to display all posts for a certain category/categories on a given page that is dedicated to that category or categories.
See how to add categories in navigation menu in WordPress. If this is not what you are looking for then here is how you can display posts from a category using the display posts shortcode.
[display-posts category="travel"]
Great guide but I am wondering how did you create your Archive page?
Login to your WordPress admin area. Click on “Pages” in the admin sidebar. Now under the Pages, click on Add New. WordPress will now open ‘create a new page’. Give your page a title and click on save/publish button.