I had the need to use this on a site on which I’m working and thought I’d share it here.
Quite simply it allows you to write a shortcode in a post thus:
This will insert the content from page ID 45 into your post/page.
/** * Create a shortcode to insert content of a page of specified ID * * @param array attributes of shortcode * @return string $output Content of page specified, if no page id specified output = null */ function pa_insertPage($atts, $content = null) { // Default output if no pageid given $output = NULL; // extract atts and assign to array extract(shortcode_atts(array( "page" => '' // default value could be placed here ), $atts)); // if a page id is specified, then run query if (!empty($page)) { $pageContent = new WP_query(); $pageContent->query(array('page_id' => $page)); while ($pageContent->have_posts()) : $pageContent->the_post(); // assign the content to $output $output = get_the_content(); endwhile; } return $output; } add_shortcode('pa_insert', 'pa_insertPage');
This shortcode could easily be expanded to allow a lot of other ‘inserts’ and can also be used in your theme’s template files by using do_shortcode() function, e.g.:
<?php echo do_shortcode('[pa_insert page="1228"]');?>
Comments