Title: Pre- or postfix inserted content
Last modified: August 30, 2016

---

# Pre- or postfix inserted content

 *  Resolved [heiglandreas](https://wordpress.org/support/users/heiglandreas/)
 * (@heiglandreas)
 * [10 years, 5 months ago](https://wordpress.org/support/topic/pre-or-postfix-inserted-content/)
 * Hi.
 * I’d like to prefix an included content of a page with the pages featured image.
   To do so I’d need a filter for the content right before it is inserted into the
   current page.
 * I had a look at the code and created a patch that would allow that to be achieved:
 *     ```
       --- insert-pages.php	2015-12-15 15:51:11.000000000 +0100
       +++ ../insert-pages2/insert-pages.php	2015-12-15 14:38:09.000000000 +0100
       @@ -106,14 +106,12 @@
        		// Shortcode hook: Replace the [insert ...] shortcode with the inserted page's content
        		function insertPages_handleShortcode_insert( $atts, $content = null ) {
        			global $wp_query, $post, $wp_current_filter;
       -			$shortcode_attributes = shortcode_atts( array(
       +			extract( shortcode_atts( array(
        				'page' => '0',
        				'display' => 'all',
        				'class' => '',
        				'inline' => false,
       -			), $atts );
       -
       -			extract($shortcode_attributes);
       +			), $atts ) );
   
        			// Get options set in WordPress dashboard (Settings > Insert Pages).
        			$options = get_option( 'wpip_settings' );
       @@ -276,22 +274,12 @@
   
        			wp_reset_query();
   
       -			$shortcode_attributes['wrapper'] = $should_use_inline_wrapper ? 'span' : 'div';
       -			$content = apply_filters('insert_pages_wrap_content', $content, $shortcode_attributes);
       +			$wrapper_tag = $should_use_inline_wrapper ? 'span' : 'div';
       +			$content = "<$wrapper_tag data-post-id='$page' class='insert-page insert-page-$page $class'>$content</$wrapper_tag>";
        			return $content;
        			//return do_shortcode($content); // careful: watch for infinite loops with nested inserts
        		}
   
       -		public function wrapContentIntoSpan($content, $attributes) {
       -			return sprintf(
       -				'<%4$s data-post-id="%2$s" class="insert-page insert-page-%2$s %3$s">%1$s</%4$s>',
       -				$content,
       -				$attributes['page'],
       -				$attributes['class'],
       -				$attributes['wrapper']
       -			);
       -		}
       -
   
        		// Filter hook: Add a button to the TinyMCE toolbar for our insert page tool
        		function insertPages_handleFilter_mceButtons( $buttons ) {
       @@ -543,5 +531,4 @@
        	add_action( 'before_wp_tiny_mce', array( $insertPages_plugin, 'insertPages_wp_tinymce_dialog' ), 1 ); // Preload TinyMCE popup
        	add_action( 'wp_ajax_insertpage', array( $insertPages_plugin, 'insertPages_insert_page_callback' ) ); // Populate page search in TinyMCE button popup in this ajax call
        	add_action( 'admin_print_footer_scripts', array( $insertPages_plugin, 'insertPages_add_quicktags' ) );
       -	add_filter('insert_pages_wrap_content', array($insertPages_plugin, 'wrapContentIntoSpan'), 10, 2);
        }
       ```
   
 * That way one can add a filter to adapt the content to their liking.
 * It would f.i. also be possible to use that filter to allow nested shortcodes 
   using the following:
 *     ```
       add_filter('insert_pages_wrap_content', function($content){
           return do_shortcode($content);
       }, 9, 1);
       ```
   
 * Any chance to get that into one of the future versions of the plugin?
 * Thanks and Cheers
 * [https://wordpress.org/plugins/insert-pages/](https://wordpress.org/plugins/insert-pages/)

Viewing 2 replies - 1 through 2 (of 2 total)

 *  Plugin Author [Paul Ryan](https://wordpress.org/support/users/figureone/)
 * (@figureone)
 * [10 years, 5 months ago](https://wordpress.org/support/topic/pre-or-postfix-inserted-content/#post-6853428)
 * Thanks for the pull request! This feature will be included in the next release:
   
   [https://github.com/uhm-coe/insert-pages/issues/2](https://github.com/uhm-coe/insert-pages/issues/2)
 * For reference, an example of using the function to allow nested shortcodes:
 *     ```
       /**
        * Filter the markup generated for the inserted page.
        *
        * @param string $wrapper_tag The html element to wrap the content in (typically div or span).
        * @param string $extra_classes Space-delimited list of classes to add to the wrapper element.
        * @param int $post_id The ID of the inserted page.
        * @param string $content The post content of the inserted page.
        */
       function your_custom_wrapper_function( $wrapper_tag, $extra_classes, $post_id, $content ) {
           return do_shortcode( $content );
       }
       add_filter( 'insert_pages_wrap_content', 'your_custom_wrapper_function', 9, 4 );
       ```
   
 *  Plugin Author [Paul Ryan](https://wordpress.org/support/users/figureone/)
 * (@figureone)
 * [10 years, 5 months ago](https://wordpress.org/support/topic/pre-or-postfix-inserted-content/#post-6853429)
 * Version 2.9 is released with this change. Thanks!

Viewing 2 replies - 1 through 2 (of 2 total)

The topic ‘Pre- or postfix inserted content’ is closed to new replies.

 * ![](https://s.w.org/plugins/geopattern-icon/insert-pages.svg)
 * [Insert Pages](https://wordpress.org/plugins/insert-pages/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/insert-pages/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/insert-pages/)
 * [Active Topics](https://wordpress.org/support/plugin/insert-pages/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/insert-pages/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/insert-pages/reviews/)

## Tags

 * [filter](https://wordpress.org/support/topic-tag/filter/)
 * [shortcode](https://wordpress.org/support/topic-tag/shortcode/)

 * 2 replies
 * 2 participants
 * Last reply from: [Paul Ryan](https://wordpress.org/support/users/figureone/)
 * Last activity: [10 years, 5 months ago](https://wordpress.org/support/topic/pre-or-postfix-inserted-content/#post-6853429)
 * Status: resolved