IWA Italy - International Web Association Italia


Laura Gargiulo , 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>

Verifica Associato

Usa il codice associato per verificare lo status

IWA

Associazione IWA Italy (International Web Association Italia)

Via Colombo, 1/e - 30126 Lido di Venezia (VE)

email: amministrazione@iwa.it

PEC: iwa@pec.it

P. IVA: 03250160276

Informativa | Adempimenti L. 4/2013

Licenza Creative Commons