Posts in Page


Easily add one or more posts to any page using simple shortcodes.

Supports categories, tags, custom post types, custom taxonomies, and more.

You can get all of the same functionality provided by this plugin by modifying your theme’s template files; this plugin just makes it easy for anyone to pull posts into other areas of the site without having to modify theme files.

Plugin is depending upon your theme’s styling; version 1.x of this plugin does not contain native styles.

This is a minimal plugin, function over form. If you would like to extend it, or would like us to extend it in later versions, please post feature suggestions in the plugin’s support forum or contact us.

Give us feedback and contribute to this plugin on its GitHub page


  • Embed a shortcode into a page and it will automatically pull in the post(s) you need.
  • Embed shortcodes directly in your template using do_shortcode.


You can install from within WordPress using the Plugin/Add New feature, or if you wish to manually install:

  1. Download the plugin.
  2. Upload the entire posts-in-page directory to your plugins folder
  3. Activate the plugin from the plugin page in your WordPress Dashboard
  4. Start embedding posts in whatever pages you like using shortcodes.

Shortcode Usage

To ‘pull’ posts into a page, you can either:

  1. place a shortcode in the editor window of the page you’re editing, or
  2. modify a theme template file using the shortcode in a PHP function.

Using Shortcodes in the WordPress editor

  • [ic_add_posts] – Add all posts to a page (limit to what number posts in WordPress is set to), essentially adds blog “page” to page.
  • [ic_add_posts ids='1,2,3'] – show one or many posts by specifying the post ID(s) ( specify all post types )
  • [ic_add_posts post_type='post_type'] – show posts from a custom post type by specifying the post type slug ( must give post type if not a standard post ) add multiple post types by separating with commas (ex. post_type='post_type1,post_type2')
  • [ic_add_posts showposts='5'] – limit number of posts (or override default setting)
  • [ic_add_posts orderby='title' order='ASC'] – orderby title – supports all WP orderby variables. Order is optional, WP default is ‘DESC’.
  • [ic_add_posts category='category-slug'] – Show posts within a specific category. Uses slugs, can have multiple but separate by commas. category-1,category2, etc (no spaces.)
  • [ic_add_posts exclude_category='category-slug'] – Exclude posts within specific category. Uses slugs, can have multiple slugs separated by commas. category-1,category2, etc (no spaces.)
  • [ic_add_posts tag='tag-slug'] – Show posts using a specific tag. Like categories, it uses slugs, and can accommodate multiple tags separate by commas. tag-1,tag-2, etc (no spaces.)
  • [ic_add_posts tax='taxonomy' term='term'] – limit posts to those that exist in a taxonomy and have a specific term. Both are required for either one to work
  • [ic_add_posts template='template-in-theme-dir.php'] – In case you want to style your markup, add meta data, etc. Each shortcode can reference a different template. These templates must exist in the theme directory.
  • [ic_add_posts ignore_sticky_posts='no'] – Show sticky posts too (they’re ignored by default).
  • [ic_add_posts paginate='yes'] – use pagination links (off by default)
  • [ic_add_posts label_next='Next' label_previous='Previous'] – Customize ‘Next’ and ‘Previous’ labels used by pagination
  • [ic_add_posts post_status='private'] – Show posts with the specified status. By default it shows only posts with ‘publish’ status. To select multiple statuses, separate them with commas like so: post_status='private,publish'.

Or any combination of the above.

Shortcode Examples

Not sure how to use the shortcodes above to get what you want? Here are a few examples to get you started:

** Example 1 **

Let’s say you want to pull a specific post called “What I love about coffee”, which has a post ID of 34, somewhere on your About Us page. Your shortcode should look like this:

[ic_add_posts ids='34']

** Example 2 **

Alright, now lets say that you want to pull in all posts from two categories into your WordPress page. One category is WordPress Rocks and the other is WordPress Rolls. Plus, you’d like to display them three per page, rather than the default number of posts. Depending on your category slugs, your shortcode should probably look like this:

[ic_add_posts category='wordpress-rocks,wordpress-rolls' showposts='3']

** Example 3 **

Now, you’re ambitious and want to try something complex. Let’s say you’ve got a page called Plugins Are Awesome and, in it, you want to pull in posts that match the following criteria:

  • posts from a custom post type called Testimonials,
  • posts that are in the Testimonial Type custom taxonomy using the term Customer,
  • you want to display six testimonials per page,
  • you’d like them displayed in ascending order,
  • finally, you’ve created a custom template to use in presenting these posts and named it my-posts-in-page-template.php

Your shortcode might look like this:

[ic_add_posts showposts='6' post_type='testimonials' tax='testimonial-type' term='customer' order='ASC' template='my-posts-in-page-template.php']

Using Shortcodes within a PHP function

If you’d like to use this plugin to pull posts directly into your theme’s template files, you can drop the following WordPress function in your template files, replacing the [shortcode] part with your, custom shortcode.

<?php echo do_shortcode("[shortcode]"); ?>


What is the point of this plugin?

Some of our clients wanted to output some posts in a specific page without fiddling with templates.

This plugin goes well with our Simple Page Specific Sidebars plugin, and gives you more granular control of sidebars on specific categories, post-types, etc.

How do I change the output template

Simply copy the posts_loop_template.php to your theme directory and make changes as necessary.

You can even rename it – but make sure to indicate that in the shortcode using the template='template_name.php'.

You can even use different templates for each shortcode if you like.

Does it work with custom post types?


How about with custom taxonomies?

You bet.

Will it make me coffee?

Not likely, but let us know if it does; then we’ll know we have something special.


Great Plugin

Does exactly what is says with great flexibility and simplicity. Can include all sorts of content, with the option to style it exactly as you want. Top!

Really nice Plugin, but…

I really like the plugin, because it lets me post all posts of a category. That's what I searched for. But my problem is, that it does not show the Share-Buttons properly... That's a problem because I don't want to have ugly icons on my page... Please fix that... Pls. visit my page to understand what i mean:

The Post Displayer I wanted

It may have taken a bit of searching, but this was exactly what I was looking for. A plug-in that let me display posts on more than one page, and with features that I hadn't even been thinking of trying to find yet. Still not sure what I'd done that had temporarily broken it on one page, or what I did that got it working again, but it has worked perfectly for what I need, which is great for someone like me who loves to organize things into sub-categories of sub-categories of sub-categories of sub-categories of sub-categories of sub-categories of categories. No, that isn't an exaggeration, I have files on one of my computers that are quite literally nested that many layers deep. I might not have posts that deep but having easy to navigate to pages dedicated to displaying the last so many posts of a particular category or sub-category just feels RIGHT to me, especially since it is designed to blend into the theme I'm using. Kinda glad this is free since money is really tight for me right now, but when things change I'm making a donation to them to keep great plug-ins like this coming.

image not displaying

Dear Support team - - - I am having trouble display featured image when applying this code "[ic_add_posts]" - - - it did the job, listed all the posts. But all of them had no featured image - - - I already added featured image in each of the posts and try again but no luck - - - So please help me find out solution to this - - - Thank you so much!
Read all 81 reviews

Contributors & Developers

“Posts in Page” is open source software. The following people have contributed to this plugin.


“Posts in Page” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Posts in Page” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • File header update / spelling fixes in readme.txt


  • File reorganization / housekeeping
  • Admin UI cleanup
  • Security: Fixed directory traversal vulnerability.
  • Added ability to optionally include private posts – Thanks StarsoftAnalysis!


  • now you can set more_tag="" to remove the [...] &hellip; that unfortunately shows up as &hellip


  • Added minor doc tweaks.


  • Added pagination, tweaked to turn off by default.
  • Bug fixes.


  • Added code to allow ignoring, or showing of sticky posts. By default, sticky posts are ignored, but can be re-enabled using the shortcode [ic_add_posts ignore_sticky_posts='no'].


  • Code maintenance to better comply with standards
  • Added post pagination
  • Plugin now honors default post reading settings under Settings/Reading in the WordPress Dashboard.
  • Improved and simplified documentation.


  • Code maintenance, fix for category bug, also added ability for multiple post types per shortcode.


  • Code maintenance, squash non-critical debug notices.


  • Added check for published/private posts.


  • Fixed template bug introduced by comments.


  • Code cleanup & indentation
  • Added comments and notes to output template file: posts_loop_template.php


  • Added Help Page under Setting in WP Dashboard.


  • More plugin housekeeping.


  • Minor housekeeping, added author, updated readme.txt.


  • Added single post or specific post capabilities.