Wordpress: creare un file category di un template

Il file category.php è quello che ci permette di visualizzare i post di una determinata categoria. Ogni post di Wordpress ha una o più categorie associate. Quando viene richiesta la pagina di una categoria, per esempio tramite l'URL http://sito.it/categoria/, Wordpress usa questo file per visualizzare la pagina dedicata alla categoria richiesta.

Lo schema di base della pagina è quello già visto in altri file:


<?php get_header(); ?>

<div id="content">
  
  <!-- contenuto qui -->
</div>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

La prima cosa da fare è visualizzare il titolo della categoria e, se presente, la sua descrizione:


<h1><?php printf( __( 'Archivi per categoria: %s' ), '<span>' . single_cat_title( '', false ) . '</span>' ); ?></h1>
<?php echo category_description();?>

La funzione single_cat_title() visualizza il titolo della categoria. Il primo parametro è una stringa testuale che può essere usata come prefisso, mentre il secondo è un valore booleano che specifica se il valore restituito debba essere visualizzato direttamente o meno.

A questo punto lanciamo il loop e visualizziamo i post per questa categoria:


<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  <div class="post-single">
	<h2><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
	<div class="post-excerpt">
	  <?php the_excerpt(); ?>
	</div>
	<p>Scritto il <?php the_time('j F Y'); ?> alle <?php the_time() ?> da <?php the_author_posts_link() ?></p>
  </div>

A questo punto dobbiamo prendere in considerazione l'eventualità che non ci siano post per la categoria scelta:


<?php endwhile; else: ?>
<div class="no-results">
  <p>Oops, nessun risultato!</p>
</div>

Infine, dobbiamo inserire la paginazione per i post della categoria:


<div class="oldernewer">

  <div class="older">
  
    <p><?php next_posts_link('&laquo; Post precedenti') ?></p>
  
  </div>
  
  <div class="newer">
  
    <p><?php previous_posts_link('Post successivi &raquo;') ?></p>
  
  </div>


</div>
Torna su