, 27/12/2011 10:02
Sarà capitato anche a voi (di avere una musica in testa...)...no, di avere un problema del genere: dover mostrare anteprima immagine, riassunto e titolo delle sottopagine di una pagina madre, all'interno della stessa. Esistono diverse soluzioni in giro per mostrare la semplice lista di pagine "child" tramite widget, shortcode o la semplice funzione di Wordpress list_subpages();. Nessuna però è completa di queste funzionalità, in realtà molto richieste. Settimana scorsa insieme a Roberto Scano abbiamo messo a punto il seguente codice prendendo qua e là dalla rete (e ci scusiamo se non abbiamo più i credits originali dei vari pezzi). Ecco a voi la soluzione pronta al consumo, da inserire dove desiderate far comparire la lista all'interno della pagina del vostro template chiamata page.php:
<ul> <!--inizio modifica scano --> <?php //questa serve per l'excerpt ed è possibile spostarla in functions.php function nicetrim ($input, $length) { $input = strip_shortcodes($input); //no need to trim, already shorter than trim length if (strlen($input) <= $length) { return $input; } //find last space within length $last_space = strrpos(substr($input, 0, $length), ' '); $trimmed_text = substr($input, 0, $last_space); $trimmed_text .= '...'; return $trimmed_text; } //fine funzione $child_pages = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = ".$post->ID." AND post_type = 'page' AND post_status='publish' ORDER BY menu_order", 'OBJECT'); ?> <?php if ( $child_pages ) : foreach ( $child_pages as $pageChild ) : setup_postdata( $pageChild ); ?> <li> <span class="pic"><a href="<?php echo get_permalink($pageChild->ID); ?>" rel="bookmark"><?php echo get_the_post_thumbnail($pageChild->ID,array(100,100));?></a></span> <h3><a href="<?php echo get_permalink($pageChild->ID); ?>" rel="bookmark"><?php echo $pageChild->post_title; ?></a></h3> <?php echo nicetrim(strip_tags($pageChild->post_content), 350);?> </li> <?php endforeach; endif; ?> <!--fine modifica scano --> </ul>