Guida di WordPress: come creare una lista alfabetica di pagine

DiMarco Nisticò

PUBBLICATO IL 17 Apr 2019 ALLE 15:00 - AGGIORNATO IL 19 Maggio 2020 ALLE 18:56

Tramite un semplice codice in PHP è possibile creare una lista alfabetica di link, che si aggiorna in tempo reale.

Spesso ci imbattiamo in pagine web che contengono delle liste di contenuti ordinati alfabeticamente. Tale lista non viene creata manualmente, anche perché il dispendio di tempo sarebbe davvero enorme, ma si sfrutta un semplice codice PHP che permette di creare una lista di contenuti in ordine alfabetico, che aggiunge nuovi elementi appartenenti alla stessa pagina ogni volta che se ne creano.

Immaginate di voler creare una pagina dove all’interno è presente l’elenco di svariati prodotti e volete ordinarli per ordine alfabetico. Innanzitutto avete bisogno di creare le pagine dei singoli articoli ma poi per ordinarle nella pagina dovreste inserire manualmente il link alla pagina, facendo attenzione a metterle correttamente in ordine alfabetico. E’ un’operazione con un alto margine di errore. Fortunatamente ci viene in aiuto una piccola funzione che possiamo implementare in WordPress e che ci aiuterà ad ordinare automaticamente i contenuti di una pagina.

Come creare una lista alfabetica in WordPress

La prima cosa da fare è creare una pagina in WordPress tramite l’opzione Aggiungi Pagina. Questa sarà la pagina principale che conterrà tutte le diverse sottopagine. Ogni sottopagina dovrà avere come pagina genitore la pagina principale. Per modificare la gerarchia delle pagine, fare riferimento all’immagine di seguito:

pagina wordpress
Creazione pagina WordPress

Una volta creata la sottopagina, verifichiamo che il permalink sia corretto. Ad esempio, se la pagina principale si chiama Prodotti (con permalink www.sito.it/prodotti) e una delle sottopagine l’abbiamo chiamata Stampanti, allora il permalink della sottopagina dovrà essere www.sito.it/prodotti/stampanti.

Dopo aver creato diverse sottopagina, ognuna con la stessa pagina genitore, è il momento di aggiungere il codice che creerà la lista alfabetica delle sottopagine. Dunque entrare nell’editor di WordPress tramite Editor>Editor del tema ed accedere al file function.php. Qui inserire il seguente codice:

function list_pages (){
global $post;
$args = array(
    'post_type' => 'page',
    'post_parent' => $post->ID,
    'post_status' => 'publish',
    'orderby' => 'name',
    'order' => 'ASC',
    'posts_per_page' => 9999,);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
    echo '<ul>';
        while ( $query->have_posts() ) {
            $query->the_post();
            echo '<li><a href="' .get_permalink().'">' . get_the_title() . '</a></li>';
        }
    echo '</ul>';}
wp_reset_postdata();
}
add_shortcode('list','list_pages');

In pratica questo codice stampa in ordine alfabetico un array di link relativi alle sole pagine pubblicate. La struttura della lista è un insieme di link, ognuno dei quali con il nome preciso della sottopagina. La stringa add_shortcode(‘list’,’list_pages’); crea una parola chiave (in questo caso list) che permette di integrare la funzione all’interno di qualunque pagina, senza ogni volta ricorrere al codice completo. Dunque ciò che dovremo fare sarà inserire la voce [list] all’interno della pagina genitore per applicare la funzione. In questo modo appariranno automaticamente i link alle sottopagine in ordine alfabetico e ogni volta che creeremo una nuova sottopagina, questa si aggiungerà all’elenco, posizionandosi secondo l’ordine stabilito.

Di Marco Nisticò

Sviluppatore informatico, cerco sempre di stare al passo con i tempi in un mondo ormai circondato dalla tecnologia.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.