Créer son shortcode, rien de bien sorcier. Rajouter votre bout de code dans le fichier functions.php de votre thème.
// votrethemes/functions.php
/*
* My Shortcode
*
*/
function myGallery( $atts ) {
// Modification article suite aux commentaires de Dominique
// Ici rajout de l'attribut columns pour définir le nombre de colonnes à l'affichage
// On peut rajouter autant d'attribut que l'on veut (voir sur http://codex.wordpress.org/Gallery_Shortcode pour la liste des attributs de gallery par défaut de Wordpress)
(isset($atts['columns'])) ? $columns = $atts['columns'] : $columns = "3" ; // Rajout de l'attribut columns (3 par défaut, sinon le définir dans votre shortcode)
$categoryName = $atts['category'] ;
$htmlOut = "" ;
$the_query = new WP_Query('category_name='. $categoryName) ;
while ( $the_query->have_posts() ) : $the_query->the_post();
$childrenPosts = get_children('post_parent='. get_the_ID()) ;
foreach($childrenPosts as $childrenPost){
$childrenPostsId[] = $childrenPost->ID ;
}
endwhile; // end of the loop.
$childrenPostsIdImplode = implode(",",$childrenPostsId) ;
$htmlOut .= do_shortcode('[gallery include="'.$childrenPostsIdImplode.'" columns="'.$columns.'"]') ; // Modification article suite commentaires Dominique
wp_reset_postdata();
return ($htmlOut) ;
}
add_shortcode( 'myGallery', 'myGallery' );