Improved Include Page


Improved Include Page (IIP) uses the WordPress Shortcode API to include the content of any page inside any other page or post.

Using a shortcode in a post/page:

[include-page id=”123″] OR [include-page id=”/about/resume”]

Using PHP in a template

For more details and examples, see the Installation tab.

Improved Include Page is an enhanced version of the original Include Page developed by Brent Loertscher.

Key Features

  • Page title can be displayed with optional HTML code
  • Content can be displayed with different styles (full, teaser, custom ‘more’ link)
  • WordPress filters are applied to both the content and the title
  • Supports the WordPress Shortcode API


  1. Download Improved Include Page
  2. Extract the zipped archive
  3. Upload the file ‘iinclude_page.php’ to the ‘wp-content/plugins’ directory of your WordPress installation
  4. Activate the plugin from your WordPress admin ‘Plugins’ page.
  5. Include pages in your templates using ‘iinclude_page’ function or in your pages/posts using the shortcode syntax.

How To Use

Once installed, the plugin adds the function ‘iinclude_page’:

void iinclude_page(int post_id [,string params, boolean return = false])

The function takes three parameters:
1. the id of the page to include (‘post_id’)
2. an optional string (‘params’) which contains the display options
3. an optional boolean (‘return’) tells whether to return the content or display it on screen.

Example 1: using Shortcode API in posts or pages

You can include a page’s content in a page/post using the syntax:

[include-page id="123"]


[include-page id="3" displayTitle="true" displayStyle="DT_TEASER_MORE" titleBefore="<h3>" titleAfter="</h3>"  more="continue&raquo;"]

Example 2: basic usage in templates

If you wish to include the content of page number ‘4’ insert the following code into your template file (e.g. sidebar.php):

<?php iinclude_page(4); ?>


<?php echo iinclude_page(4, null, true); ?>

In order to avoid PHP errors if the plugin is disabled, you should use the function with the following syntax:

 <?php if( function_exists( 'iinclude_page' ) ) iinclude_page( 4 ); ?>

Example 3: using optional parameters in templates

You can also display the page title using the following code:

<?php iinclude_page( 4, 'displayTitle=true&titleBefore=<h2 class="sidebar-header">' ); ?>


The current version supports the following parameters:

displayTitle (boolean)
toggle title display
titleBefore/titleAfter (string)
string to display before and after the title
displayStyle (integer constant)
one of the following:

  • `DT_TEASER_MORE` – Teaser with ‘more&’ link (default)
  • `DT_TEASER_ONLY` -Teaser only, without ‘more’ link
  • `DT_FULL_CONTENT` – Full content including teaser
  • `DT_FULL_CONTENT_NOTEASER` – Full content without teaser
more (string)
text to display for the ‘more’ link


Can I include pages using custom fields?

Yes, but there’s an extra bit of code you need. To include a page, you now need to use this syntax:

echo do_shortcode( get_post_meta( get_the_id(), ‘custom_field_key’, true ) );


September 30, 2018
Does the job in a very easy manner. The only thing I'd like to have is the ability to include also Draft Pages, so the pages to include will not be public, but they will show only when included in other pages or posts.
Read all 9 reviews

Contributors & Developers

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




  • Correct a warning issue by PHP related to a switch statement.


  • Modified how password protected posts are handled. Thanks to piwel for the code.


  • Confirming plugin works with WP 4.4 using both shortcode and template code.
  • Bumping WordPress requirement to 4.0.
  • Updates to description, documentation and tags.
  • PHP code formatting tweaks.
  • Support and development transferred from Vito Tardia to Marios Alexandrou.


  • Added the ‘#more-‘ in the “read more” link href, to avoid going to the top of the post when clicking (by Matthieu Sarter),
  • Added support for the WordPress ” tag, so that the more link text can be defined at the post level (it can still be overriden at the ‘iinclude_page()/[include]’ level) (by Matthieu Sarter).


  • Fixed static method definitions
  • Fixed: returns false if a page is not found, without triggering a notice


  • Fixed bug which broke the ID style inclusion on WP 3.0 (thanks to Mike Woods, Brad Lauster and wptk)
  • Fixed a bug on the ‘more’ link which caused too many slashes when using images as ‘more tags’ (thanks to Nikhil Dabas)

    Note: if you use HTML code in the ‘more’ link use single quotes for the ‘more’ parameter, like this:

    ‘[include-page id=”mypage” more=”]’

    or you will have a PHP Warning

  • Fixed a bug in the displayTitle attribute: using “false” you will get a real boolean false and title is hidden

  • Added a new WP action ‘include-page’ to use inside your PHP code

  • Edited class attribute for the ‘more’ link. Now it is ‘more-link’ and ‘iip-more-link’


  • On WP 2.5 or greater allows custom inclusion by post type and status using parameters ‘allowType’ and ‘allowStatus’.
  • Bug fix: in shortcode fixed a bug that could crash PHP when including recursive page/posts


  • Bug fixed: since this version you can include only static pages with status of ‘published’.


  • Page ID can be a valid page path (WP 2.1 or higher required) with contribution by Guy Leech.

= 0.4.4
* Added parameter $return (default = false) to iinclude_page() function
* Added support for WP 2.5.x shortcode API


  • The code of this version it’s been cleaned and optimized using WordPress API.


  • This version fixes a bug that triggers an error when used with some content filter: the ‘$page’ global variable is backed up and then restored before returning.