Wordpress: creare un file single di un template

Il file single.php ci permette di visualizzare un singolo post o articolo. In questo componente è possibile inserire non solo il contenuto del post e i suoi metadati, ma anche le informazioni relative all'autore del post. Questo particolare tipo di accorgimento ci permette di gestire al meglio i contenuti, specie se il nostro sito ha più autori.

Partiamo dalla struttura di base:


<?php get_header(); ?>
<div id="content">
  <!-- qui il contenuto -->
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

A questo punto inizializziamo il loop di Wordpress per inserire il contenuto del post:


<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

Quindi inseriamo il post vero e proprio:


<div id="post-<?php the_ID(); ?>" <?php post_class('post'); ?>>
  <h1><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></h1>
  <div class="post-content">
	<?php the_content(); ?>
  </div>
  <div id="post-meta">
    <p>Pubblicato il <?php the_time('j F Y'); ?> alle <?php the_time() ?></p>
    <p><?php comments_popup_link('Nessun commento', '1 commento', '% commenti', 'comments-link', 'I commenti sono chiusi'); ?> </p>
    <p>Categorie: <?php the_category(', ') ?> | Tag: <?php the_tags('Tags: ', ', ', ' '); ?></p>
  </div>
<!-- continua-->

Dopo aver inserito il post e i suoi metadati, possiamo inserire le informazioni sull'autore del post:


<!-- continua -->
<div id="post-author">
  <h3>Scritto da <?php the_author_posts_link() ?></h3>
  <p class="gravatar"><?php if(function_exists('get_avatar')) { echo get_avatar( get_the_author_email(), '80' );} ?>
  <?php the_author_meta('description') ?> 
  </p>
  <p>Leggi tutti i post scritti da <?php the_author_posts_link() ?></p>
</div>

La funzione get_avatar() accetta come primo parametro l'email dell'autore e come secondo parametro la dimensione dell'avatar restituito dal sito Gravatar.com.

A questo punto possiamo chiudere il loop inserendo la paginazione ed il form per i commenti:


<div class="newer-older">
  <div class="older">
	<p>
	  <?php previous_post_link('%link', '&laquo; Post precedente') ?>
	</p>
  </div>
  <div class="newer">
	<p>
	  <?php next_post_link('%link', 'Post successivo &raquo;') ?>
    </p>
  </div>
</div>
<?php comments_template( '', true ); ?>
<?php endwhile; /* fine del loop */ ?>

Se volete disabilitare i commenti, non solo sui post ma anche sulle pagine, è sufficiente che non inseriate il riferimento alla funzione comments_template().

Torna su