Create a short code to display a specific loop

I’m breaking my head trying to create a short code to display certain loop, however I’m totally cut, I can not figure it out how to do it, since it’s the first time I try to do it… I do now want to set any parameter, just put exactly as it if… I would appreciate if anyone can light me…

This is the code I want to put into the shortcode

 <div class="clear"></div>
 <div class="childs grid_12"> 
  <?php
  $the_query = new  WP_Query( 
      array(
          'post_parent' => '8',
          'post_type' => 'page',
          'posts_per_page' => 4,
          'sort_column'   => 'menu_order'
      )
  ); ?>
 <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <div id="service-hp">
        <?php the_post_thumbnail('home-thumb') ?>
        <h2><?php the_title() ?></h2>
        <?php the_excerpt() ?>
        <a class="read-more" href="<?php the_permalink() ?>">en savoir plus <img src="<?php bloginfo( 'template_url' ); ?>/images/read-more.png"></a>
    </div> <!--  ends here -->
 <?php endwhile; ?>
 <?php wp_reset_query() ?>
 </div>

Related posts

Leave a Reply

2 comments

  1. I’m displaying my loops this way:

    function loop_shortcode( $atts = '' ) {
    
       (your shortcode code goes here)
    
    }
    
    function my_loop_shortcode( $atts ) {
             ob_start(); 
             loop_shortcode($atts);
             return ob_get_clean(); 
    }         
    
    add_shortcode('my_loop', 'my_loop_shortcode'); 
    

    The “normal” way looks like this:

    function my_loop_shortcode( $atts ) {
                 return 'your shortcode output';
        }         
    
        add_shortcode('my_loop', 'my_loop_shortcode'); 
    

    But doesn’t cope with loops too well.

    Learn more at http://codex.wordpress.org/Shortcode_API