Plugin Directory

Insert Pages

Insert Pages lets you embed any WordPress content (e.g., pages, posts, custom post types) into other WordPress content using the Shortcode API.

How do I limit the list of pages in the dialog to certain post types?

You can hook into the 'insert_pages_available_post_types' filter to limit the post types displayed in the dialog. Here's an example filter that just shows Posts:

 * Filter the list of post types to show in the insert pages dialog.
 * @param $post_types Array of post type names to include in the insert pages list.
function only_insert_posts( $post_types ) {
    return array( 'post' );
add_filter( 'insert_pages_available_post_types', 'only_insert_posts' );

Do I have to use the toolbar button to Insert Pages?

No! You can type out the shortcode yourself if you'd like, it's easy. Here's the format:

[insert page='{slug}|{id}' display='title|link|content|all|{custom-template.php}']


  • [insert page='your-page-slug' display='link']
  • [insert page='your-page-slug' display='your-custom-template.php']
  • [insert page='123' display='all']

Anything I should be careful of?

Just one! The plugin prevents you from embedding a page in itself, but you can totally create a loop that will prevent a page from rendering. Say on page A you embed page B, but on page B you also embed page A. As the plugin tries to render either page, it will keep going down the rabbit hole until your server runs out of memory. Future versions should have a way to prevent this behavior!

Requires: 3.0.1 or higher
Compatible up to: 4.4.2
Last Updated: 1 month ago
Active Installs: 8,000+


4.7 out of 5 stars


13 of 20 support threads in the last two months have been marked resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

0,1,0 0,1,0 0,1,0
100,1,1 0,1,0 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1