14 Template di pagina (modelli delle pagine)

I template di pagina sono file php che possono essere creati per modificare l’aspetto o il comportamento delle singole pagine.

Il template di pagina predefinito è page.php.

Per creare un template di pagina personalizzato, bisogna dare un nome al file php e inserire all’inizio il seguente codice:

<?php
/*
Template Name: My Page Template
*/
?>

Dove su Template Name diamo un nome descrittivo al nostro template page che comunque non deve corrispondere al nome del file php. Tale nome deve aiutarci a capire il tipo di template page che andremo ad usare e una volta salvato il file, il template name comparirà nel beckend di modifica/creazione delle nostre pagine, nella sezione attributi della pagina.

Può essere utile assegnare ai template pagina il nome pagetemplate-[qualcosa].php solo per una migliore comprensione, in realtà si può assegnare qualsiasi nome.

Non bisogna chiamarli page-[qualcosa].php dato che page-[slug].php è un template file che potrebbe essere oggetto di una ricerca da parte di WordPress, e questo potrebbe causare problemi.

Un uso comune per i template di pagina è una pagina di archivio. Potrebbe essere necessario un link agli archivi che mostrano tutti gli autori, le categorie, i tag e gli ultimi 50 post mediante i template tag. Questa operazione non funziona con una pagina comune, perché non potete collocare i template tag all’interno del post stesso attraverso l’amministrazione di WordPress, almeno non senza utilizzare i plugin che aprono l’editor, quindi occorre un template di pagina. Aggiungetene uno al vostro nuovo tema, progettato per essere utilizzato con semplici archivi di blog:

<?php
/*
Template Name: Archives
*/
get_header();
?>
    <div id="main-container">
    <section id="content-container">
        <?php
        // Avvia il loop
        while (have_posts()) : the_post();
            ?>
            <article id="post-<?php the_ID(); ?>"
                <?php post_class(); ?>>
                <header>
                    <h1 class="entry-title">
                        <?php the_title(); ?>
                    </h1>
                </header>
                <?php
                // Il contenuto
                the_content();
                ?>
                <h2>Sfoglia per mese</h2>
                <ul>
                    <?php
                    // Gli argomenti
                    $args = array(
                        'type' => 'monthly');
                    // Gli archivi
                    wp_get_archives($args);
                    ?>
                </ul>
                <h2>Sfoglia per categoria</h2>
                <ul>
                    <?php
                    // Gli argomenti
                    $args = array(
                        'title_li' => ''
                    );
                    // Le categorie
                    wp_list_categories($args);
                    ?>
                </ul>
                <h2>Sfoglia per tag</h2>
                <?php
                // Gli argomenti
                $args = array(
                    'smallest' => 8,
                    'largest' => 28,
                    'number' => 0,
                    'orderby' => 'name',
                    'order' => 'ASC'
                );
                // La tag cloud
                wp_tag_cloud($args); ?>
            </article>
        <?php
            // Fine del loop
        endwhile;
        ?>
    </section>
    <!-- #main-container ends -->
<?php get_sidebar(); ?>    
</div>
<?php get_footer(); ?>

La prima parte richiama l’header e il contenuto della pagina.

Il vero nuovo contenuto inizia dal’ <h2> dove inserisco in una lista <ul> gli archivi restituiti per mese, tramite l’argomento ( $args ) passato come query-string:

$args = array(
    'type' => 'monthly');

Tale argomento (monthly) è uno di quelli presenti nella funzione wp_get_archives() integrata in WordPress che restituisce una elenco di archivi per data.

In modo analogo per le categorie con wp_list_categories() e per i tag con wp_tag_cloud .

Altri usi comuni comprendono le pagine create solo per visualizzare un loop specifico.

Oppure potete utilizzare il template file index.php, per esempio, e creare un template di pagina all’esterno, collocare il segmento di codice in alto, quindi modificare il loop per ottenere quanto desiderato mediante query_posts().

Potete anche disporre di una pagina contenente più loop o anche del codice PHP che non è correlato per nulla a WordPress.