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', '« Post precedente') ?>
</p>
</div>
<div class="newer">
<p>
<?php next_post_link('%link', 'Post successivo »') ?>
</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()
.