9 Isolare il loop, content.php
Separiamo il loop dai template files in base al suo output e in base alla parte dei contenuti. Dato il precedente codice di index.php, spostiamo il primo blocco <article> in un file a sé. Dato che questo è look and feel predefinito per i post, lo chiamerete content.php . Nel file index, al posto di <article> (che avremmo copiato nel nuovo file content.php) metteremo il seguente codice:
get_template_part( 'content', get_post_format() );
Ricordo che get_post_format() restituisce il formato del post, quindi il loop andrà dapprima a cercare il file content-formato_del_post.php .
Quindi se il post in questione è di tipo normale, sarà di default in content.php, ma se è nel formato Galleria, il codice cercherà prima content-gallery.php; se questo non dovesse esistere, passerà a content.php
Di seguito il contenuto di index.php senza il blocco <article> iniziale
<?php get_header(); ?>
<div id="main-container">
<section id="main-container">
<?php
// Avvia il loop
if ( have_posts() ) : while ( have_posts() ) : the_post();
// Ottiene il tipo di contenuto corretto
get_template_part( 'content', get_post_format() );
// Carica i commenti se ce n'è uno solo
if ( is_singular() ) { comments_template( '', true );
}
// Fine del lopp
endwhile;
// Non c'è niente nel loop?
else :
?>
<article id="post-0" class="post no-results not-found">
<header>
<h2 class="entry-title">Non è stato trovato niente</h2>
</header>
<p>Spiacenti, ma non abbiamo trovato niente per voi.
Provate con una nuova ricerca</p>
<?php get_search_form(); ?>
</article>
<?php
// Abbiamo finito
endif; ?>
</section> <!-- #main-container ends -->
<?php get_sidebar(); ?>
</div>
<?php get_footer(); ?>
Questo invece è il contenuto di content.php
<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 the_date(); ?>">
<?php the_time(); ?>
</time>
by <?php the_author_link(); ?>
<?php
// i commenti sono aperti?
if ( comments_open() ) : ?>
•
<?php comments_popup_link('Nessun commento','1 solo comment','% commenti' );
endif; ?>
</p>
</header>
</article>