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.