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>