Creare un Tema WordPress – I Commenti, Pt. 1
Nella precedente lezione abbiamo visto come creare query personalizzate per il loop e ci siamo avvantaggiati per questa lezione, collegando il loop al template dei commenti. Pur non essendo necessario creare il file, poiché se nel nostro tema non è presente il file comments.php, WordPress genererà automaticamente sia il form di inserimento che gli stessi commenti, vedremo comunque come personalizzarne la visualizzazione. Se apriamo un qualsiasi articolo troveremo, alla fine del testo, i commenti fino ad ora inseriti.
Una volta creato il file comments.php, riprendiamo l’articolo aperto in precedenza, non verrà visualizzato più nulla, poiché dobbiamo utilizzare la funzione wp_list_comments(). Questa funzione prevede ben undici parametri, vediamo quelli principali:
- $style, ovvero cosa utilizzare tra div, ol ed ul per racchiudere i commenti, utilizzando sia una lista ordinata che non ordinata, verrà generato solo il codice relativo all’elemento, quindi è necessario racchiudere la funzione tramite il tag di apertura. Ad esempio:
<ul><?php wp_list_comments(array('style' => 'ul')); ?></ul>
- $tipo, cioè quale tipo di elemento bisogna visualizzare tra commenti, trackback o pingback. Di default vengono visualizzati tutti, per visualizzare trackback e pingback insieme possiamo inserire ping, per visualizzare solo i commenti, ovviamente utilizzeremo comment
- $dimensioneavatar, la dimensione in pixel dell’avatar relativo all’utente che ha lasciato un commento. Di default è di 32 pixel.
- $callback, il nome della funzione da utilizzare per personalizzare la visualizzazione dei commenti, questo sarà l’argomento della prossima lezione.
Per il momento non utilizziamone nessuno e, all’interno di comments.php, scriviamo solamente:
<?php wp_list_comments(); ?>
Tornando al sito troveremo i due commenti presenti ma non il form per l’inserimento. Torniamo al template dei commenti ed aggiungiamo:
<?php comment_form(); ?>
Ora potremo anche aggiungere nuovi commenti.
Questo grazie alla funzione comment_form(). È possibile personalizzare ulteriormente sia il form che la lista dei commenti ma ci arriveremo più avanti. Le due funzioni da sole potrebbero anche bastare ma è necessario controllare l’effettiva presenza di commenti, grazie alla funzione have_comments():
<?php if ( have_comments() ) : ?> <!-- visualizzazione dei commenti, se presenti --> <?php else : // altrimenti ?> <!-- codice da visualizzare, se non sono presenti commenti--> <?php endif; // end have_comments() ?>
Quindi, integrando questo controllo ci ritroveremo:
<?php if ( have_comments() ) : ?> <?php wp_list_comments(); ?> <?php else : // altrimenti ?> <p> Nessun commento presente </p> <?php endif; // end have_comments() ?> <?php comment_form(); ?>
Diamo un’occhiata al codice appena scritto, la chiamata al form è stata messa al di fuori del controllo, poiché deve essere presente sia se ci siano commenti, sia che non ce ne siano, nel caso siano presenti dei commenti, verranno visualizzati grazie alla funzione wp_list_comments(), altrimenti verrà mostrato all’utente un messaggio di errore
Se vogliamo visualizzare il numero di commenti presenti, dobbiamo utilizzare la funzione comments_number(),già vista nella lezione dedicata al loop:
<?php comments_popup_link( 'Nessun commento', '1 commento', '% commenti', 'css-commenti', 'Commenti disabilitati'); ?>
Infine aggiungiamo la paginazione dei commenti, utilizzando previous_comments_link() e next_comments_link(). Entrambi i tags prevedono due parametri:
- $label. Il testo del pulsante.
- $number. Il numero massimo di commenti da visualizzare, di default è 0 ovvero illimitato.
<?php previous_comments_link(__('« Commenti Precedenti')) ?> <?php next_comments_link(__('Commenti Successivi»')) ?>
Per informare l’utente della possibilità o meno di inserire commenti, nel caso siano disabilitati per l’articolo corrente, scriviamo :
<p> Nessun commento presente </p>
con
<?php if ( ! comments_open() ) : ?> <p> I commenti per questo post sono chiusi</p> <?php else : // altrimenti ?> <p> Nessun commento presente </p> <?php endif; // end ! comments_open() ?>
In questo modo, se non sono presenti dei commenti viene effettuato un ulteriore controllo, se non ci sono commenti perché sono stati disabilitati per quell’articolo viene mostrato il relativo messaggio di errore, altrimenti avverte il visitatore che non sono presenti commenti
Bene, in questa lezione abbiamo visto come visualizzare i commenti e come dare la possibilità ai visitatori di inserirli, nella prossima lezione personalizzeremo il codice di entrambe le funzioni.
Alla prossima settimana.