Type to search.

#927 by installs

Insert Pages

by Paul RyanVersion 3.11.5

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

Active installs
30,000+
#927 of 1,000
Downloads, all time
1.1M
1,092,825
Downloads, 30 days
4.5K
1.2K in the last 7
Rating
4.8 / 5
71 reviews
Last updated
4 months ago
Jun 19, 2026
Version
3.11.5
79 releases

Upkeep and compatibility

Last updatedJune 19, 2026Updated in the last year
Tested up toWordPress 7.0.8Older than WordPress 7.1.4, the current release
Needs WordPress3.3.0 or newer
Needs PHPNot stated
First publishedNovember 21, 2013
Support, last two monthsNo threads opened

Reviews

4.8 / 5 from 71 reviews

Reviews by star rating
5 stars66
4 stars0
3 stars2
2 stars0
1 star3

Downloads, last 30 days

Low 66 a dayHigh 438 a day

What the author says it does

Insert Pages lets you embed any WordPress content (e.g., pages, posts, custom post types) into other WordPress content using the Shortcode API. It also includes a widget for inserting pages into any widget area.

The real power of Insert Pages comes when you start creating custom post types, either programmatically in your theme, or using another plugin like Custom Post Type UI. You can then abstract away common data types (like videos, quizzes, due dates) into their own custom post types, and then show those pieces of content within your normal pages and posts by Inserting them as a shortcode.

Advanced Tutorial

Contributor Wes Modes has graciously written an updated tutorial for the Gutenberg era, focused on creating a custom post type with custom fields and a custom template for rendering content. Read it here: https://medium.com/@wesmodes/using-wordpress-insert-pages-plugin-with-your-custom-post-types-and-custom-templates-535c141f9635

Example: Normal Use Case

Say you teach a course and you’re constantly referring to an assignment due date in your course website. The next semester the due date changes, and you have to go change all of the locations you referred to it. Instead, you’d rather just change the date once! With Insert Pages, you can do the following:

  • Create a custom post type called Due Date.

The opening of the plugin's own description. The full text, installation notes and changelog are on its WordPress.org page.

Questions the author answers

How do I create a custom template for use by Insert Pages?

A basic template would look like the following. This would be a file on your theme directory, e.g., your-custom-template.php:

<?php /** * Template Name: Name of your custom template */ ?> <div id="your-wrapper-div"> <?php while ( have_posts() ) : the_post(); ?> <div id="your-container-div-for-each-post"> <?php the_content(); ?> <?php the_post_thumbnail(); ?> </div> <?php endwhile; ?> </div>

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.

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}']

Examples:

  • [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!

Latest changelog entry

3.11.5

  • Medium security fix when inserting a page with malicious post meta key values and using display=”all”. Props Athiwat Tiprasaharn for responsibly reporting via Wordfence!

Screenshots

From WordPress.org.

Tagged

Plugins that share its tags

#850 by installs

Advanced iFrame

by mdempfle

Include content the way YOU like in an iframe that can hide and modify elements, does auto-height, forward parameters and does many, many more...

Installs
40,000+
Rating
4.4 (54)
Updated
21 days ago

#131 by installs

WP-PageNavi

by Lester Chan

Adds a more advanced paging navigation interface.

Installs
400,000+
Rating
4.7 (149)
Updated
2 months ago

Add 50+ shortcodes with live preview for tabs, accordions, buttons, FAQs, sliders and boxes. Works in Block Editor and Classic Editor.

Installs
400,000+
Rating
4.9 (5.9K)
Updated
14 days ago

#273 by installs

MW WP Form

by Webの相談所

MW WP Form is shortcode base contact form plugin. This plugin have many features. For example you can use many validation rules, inquiry data saving, …

Installs
200,000+
Rating
4.2 (23)
Updated
34 days ago

Create custom "Shortcodes" easily for HTML, JavaScript, CSS code snippets and use the shortcodes within posts, pages & widgets

Installs
100,000+
Rating
4.9 (227)
Updated
47 days ago

Where this page's numbers come from

Read from the WordPress.org plugin API on , when WordPress 7.1.4 was the current release. WordPress.org rounds active installs into buckets. These are the directory's figures, not my verdict, and I haven't tested this plugin.