8 index.php
index.php è il template di fallback che viene usato qualora non ne esistano di specifici per quella particolare pagina.
<?php get_header(); ?> <div id="main-container"> <section id="content-container"> <?php if (have_posts() ) : while ( have_posts()) : the_post(); // Mostra data 1 volta per pagina the_date('', '<h3 >', '</h3>' ); ?> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <header> <h2 class="entry-title"> <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" rel="bookmark"> <?php the_title(); ?> </a> </h2> <p class="entry-meta"> Postato il <time datetime="<?php echo get_the_date(); ?>"> <?php the_time(); ?> </time> by <?php the_author_link(); ?> <?php // I commenti sono aperti? if ( comments_open() ) : ?> • <?php comments_popup_link( 'No comments', '1 comment', '% comments' ); endif; ?> </p> </header> <?php // Il contenuto the_content(); ?> </article> <?php // carica commenti se ce n'è uno solo if ( is_singular() ) { comments_template('',true ); } // fine loop endwhile; // Non c'è nulla ne loop? else : ?> <article id="post-0" class="post noresults not-found"> <header> <h2 class="entry-title"> Non è stato trovato niente </h2> </header> <p> Spiacenti, ma non abbiamo trovato nulla per voi. Provate con una nuova ricerca </p> <?php get_search_form(); ?> </article> <?php endif; ?> </section> <!-- #main-container ends --> <?php get_sidebar(); ?> </div> <?php get_footer(); ?>
Iniziamo dicendo che dovranno essere inclusi header footer e sidebar e questo può essere fatto con i tag get_header(), get_footer() e get_sidebar(); , che includeranno il contenuto dei 3 files.
A seguire si include il loop che visualizza i post.
the_date() restituisce la data e qual’ora ci fossero più post con la stessa data, verrebbe stampata soltanto una volta. Se il loop è vuoto verrà eseguita la parte dell’else con un relativo messaggio.
Notate alcune classi nel tag <article> dopo endwhile. Queste classi seguono gli standard di WordPress; l’unica ragione per aggiungere l’ID post-0, per esempio, è far funzionare i plugin che applicano all’ID un trattamento speciale (tramite CSS o JavaScript). La classe post è utile perché vi permette di caratterizzare il contenuto così come fareste con un normale post.
is_singular() esegue un controllo dei fallback e può tornare utile se per qualche ragione al tema mancasse il template single.php. La funzione restituisce true quando viene visualizzato un singolo post, una pagina o un singolo allegato.
if ( is_singular() ) { comments_template('',true ); }
Se is_singular() restituisce true viene caricata comments_template() che visualizza i commenti se ce n’è almeno uno su un post o una pagina. Gli argomenti sono il file contenente il modello commenti (di default comments.php) e il booleano $separate_comments cioè se separare i commenti in base al tipo.