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
Viewing 2 replies - 1 through 2 (of 2 total)
Viewing 2 replies - 1 through 2 (of 2 total)
- The topic ‘Pre- or postfix inserted content’ is closed to new replies.