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() ) : ?>
            &bull;
            <?php comments_popup_link('Nessun commento','1 solo comment','% commenti' );
         endif; ?>
      </p>
   </header>
</article>