Abbiamo necessità di personalizzare il loop in Genesis framework. Genesis dispone del proprio loop, ma alcune volte è necessario creare il proprio “custom loop”.
Pensiamo, per esempio, di avere un template di pagina per la nostra “mappa del sito”, in cui vogliamo mostrare le pagine, gli articolo ed altro.
Personalizzare il loop in Genesis – esempio pratico
Il codice per il template in cui mostrare l’elenco delle pagine del sito internet potrebbe essere qualcosa di simile.
<?php /* template name: Template CR Mappa del sito */ remove_action('genesis_loop', 'genesis_do_loop'); add_action('genesis_loop', 'cr_custom_loop'); function cr_custom_loop() { echo '<div class="archive-description mappaDelSito-description">'; echo '<h1 class="archive-title">' . __( 'Mappa del sito', 'genesis-theme-cr' ) . '</h1>'; echo '</div>'; ?> <h2><?php _e( 'Pagine', 'genesis-theme-cr' ); ?></h2> <ul> <?php wp_list_pages( array( 'exclude' => '', 'sort_column' => 'post_title', 'title_li' => '' ) ); ?> </ul> <?Php } ?> <?php genesis(); ?>
La riga 2 dichiara il template, che possiamo agganciare in amministrazione, quando creiamo la pagina della mappa del sito.
La riga 3 rimuove il loop originale di Genesis.
Nella riga 4 informiamo Genesisframework che vogliamo personalizzare il loop con una nostra funzione.
A riga 5 inizia la funzione, dove impostiamo possiamo impostare un titolo di pagina personalizzato (righe 6-8)
Quindi da riga 10 inizia il codice che permette, tramite la funzione WordPress “wp_list_pages”, di elencare tutte le pagine presenti nel nostro sito internet.
La riga 23 fa la chiamata alla funzione principale di Genesis framework.