WordPress 2.7 e commenti nidificati, quello che c’è da sapere

scritto da Francesco Gavello [+] il 07 novembre 2008 | 23 Commenti in: WordPress

Siete già riusciti a mettere le mani sulla nuova release beta 2 di WordPress 2.7? Avete sperimentato tutte le novità dell’interfaccia e della gestione dei contenuti?

E che mi dite della nuova e meravigliosa struttura dei commenti nidificati? :D
Io semplicemente la adoro.

Non che mancassero ottime soluzioni come Brian’s Threaded Comments, o metodi per aggirare questa limitazione simulando reply e citazioni aggiungengo automaticamente il codice necessario durante la composizione del messaggio. Tuttavia una soluzione out of the box implementata direttamente dal team di Automattic non può che fare venire la classica acquolina in bocca.

Attualmente solo le versioni beta di WP 2.7 supportano i commenti nidificati, e nel solo tema di default. Come al solito si tratta di diverse righe di codice e nuovi tag: per comprendere come poter adattare il vostro tema, vi consiglio quindi di leggere questo mini tutorial con il file comments.php originale alla mano.

Bene, nonostante sul Codex ufficiale non esista ancora una vera e propria documentazione a riguardo, ecco come fare per testare la nidificazione dei commenti nel vostro layout e cominciare a sperimentare con le sue potenzialità!

Perchè dovreste dedicarci un pò di tempo

Il primo pensiero che potrebbe balenarvi è “i miei commenti già funzionano così come sono, perchè dovrei rimettere mano al tema?”

  • Perchè rende estremamente intuitivo commentare
  • Perchè agevola in maniera sostanziale l’interazione tra i commentatori
  • Perchè rende molto più spontaneo il commento occasionale

Intuitività, agevolazione dei commenti e spontaneità. Molto spesso si evita di commentare sui blog altrui proprio perchè troviamo lento e laborioso impostare il contenuto, i rimandi a quanto è stato già detto e via di questo passo.

I commenti nidificati, semplicemente, risolvono il problema. Ecco perché dovreste prevederli.

Meno codice, più semplice.

Se vi è mai capitato di mettere mano ad un tema per WordPress precedente alla versione 2.7, già sapete come sia laborioso il recupero dei commenti e quanti tag aggiuntivi siano necessari per una semplice visualizzazione di base.

La nuova struttura dedicata al recupero dei commenti sembra quasi una lode al minimalismo.

< ?php if ( have_comments() ) : ?>
	<h2 id="comments">< ?php comments_number('Ancora nessun commento. Puoi essere il primo!','Un Commento','% Commenti'); ?></h2>
	<ol class="commentlist">
	     < ?php wp_list_comments(); ?>
	</ol>
	<div id="post_nav">
		<div id="nav_prev">< ?php previous_comments_link('<< Commenti precedenti'); ?></div>
		<div id="nav_next">< ?php next_comments_link('Commenti successivi>>'); ?></div>
	</div>	
 < ?php else :? >
	< ?php if ('open' == $post->comment_status) : ?>
		<!-- Commenti aperti. Nessun commento. -->
	 < ?php else : // comments are closed ?>
		<!-- Commenti chiusi. -->
	< ?php endif; ?>
< ?php endif; ?>

Come vedete spariscono tutti i tag relativi a nome, data, testo e quant’altro sia relativo al singolo commento, delegando il loro recupero alla nuova e potente funzione wp_list_comments(); .

La nuova funzione wp_list_comments

Rechiamoci dunque sotto il pannello IMPOSTAZIONI >> DISCUSSIONE e in “Other comments settings” flagghiamo “Enable threaded (nested) comments” e, opzionalmente, anche “Break comments into pages”.

E’ possibile stabilire il livello di incapsulamento (non vi consiglio di superare i quattro, cinque livelli a meno che non abbiate un flusso veramente alto di messaggi) e il numero di commenti visualizzati prima che intervenga la suddivisione su più pagine.

A questo punto è necessario recarsi nel file header.php del nostro tema e cercare tra le prime righe il tag < ?php wp_head(); ?>;.

Inseriamo subito sopra di esso il codice che indica a WordPress di posizionare il Javascript necessario alla nidificazione all’interno delle pagine del singolo articolo.

< ?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>
< ?php wp_head(); ?>

Fatto ciò la funzione wp_list_comments(); sarà pronta a visualizzare un meraviglioso link “Reply to” al fondo di ogni singolo commento. E’ da notare poi come la funzione wp_list_comments(); accetti alcuni parametri:

  • avatar_size
  • reply_text

Visualizzare quindi i Gravatar in formato 64 pixel e il link “Rispondi a questo commento” è questione di un attimo.

< ?php wp_list_comments('avatar_size=64&amp;reply_text=Rispondi a questo commento'); ?>

Classi

La funzione inoltre si occupa in piena autonomia di generare una serie di “ul” e “li” nidificati per ciascun livello di reply, andando a definire numerose classi e sottoclassi utili per la personalizzazione del risultato finale.

  • .even (commento pari)
  • .odd (commento dispari)
  • .thread-even (serie di commenti pari)
  • .thread-odd (serie di commenti dispari)
  • .children (ogni lista nidificata)
  • .bypostauthor (commento dell’autore del post

Queste e altre molte classi vengono generate totalmente in automatico e permettono di andare ad agire con facilità sul preciso commento, sulla serie, sull’alternanza di colori tra un commento e l’altro o sulle risposte “ufficiali” dell’autore del post.

Predisporre il form di commento

Le ultime modifiche necessarie riguardano il vostro form di commento. Inseriamo all’interno del tag “form” il seguente codice.

< ?php comment_id_fields(); ?>

Se nel vostro form avete (probabilmente) input nascosti come “comment_post_ID” sarà il caso di rimuoverli. Tutto viene ora delegato a comment_id_fields();

Assicuriamoci poi che la textarea del nostro forma abbia id=”comment”, per questioni di focus, e che l’intero nostro form sia circondato da un DIV con id=”respond”; sarà questa intera parte che verrà mossa sotto al commento durante il reply.

Ancora un paio di perfezionamenti; il titolo del form ora può essere personalizzato con una funzione che accetta come parametri il titolo predefinito e quello da usare nel caso di risposta verso un altro commentatore (‘%s’ viene sostituito dal nome in questione).

< ?php comment_form_title( 'Lascia un commento', 'Rispondi a %s' ); ?>

E per ultimo il link in grado di “smontare” il form dal reply e riposizionarlo al fondo dell’intera sezione come nella situazione predefinita. Può essere posizionato dovunque nel vostro form e accetta come parametro il testo del link.

< ?php cancel_comment_reply_link('Cancella risposta'); ?>

Evoluzioni e Release Candidate

Come già detto questa guida si riferisce alla versione 2.7 beta 2 attualmente in circolazione.

E’ possibile, anche se a conti fatti molto improbabile, che fino alla distribuzione della Release Candidate e della versione definitiva di WordPress 2.7 possano essere modificate o rimosse del tutto alcune funzionalità sopra esposte. Questa guida verrà aggiornata appena ulteriori dettagli verranno delineati dal team di sviluppo.

Per tutto il resto, sperando di esservi stato utile, ci sono i commenti :D

Trovato questo articolo interessante?

Condividilo sulla tua rete di contatti Twitter, sulla tua bacheca su Facebook o semplicemente premi "+1" per suggerire questo risultato nelle ricerche in Google. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie!

23 Commenti

Update 12/02/2012: Il Regolamento Commenti è cambiato! Leggi ciò che serve sapere!

  1. Tom ha detto:

    Ottimo, mi fa piacere che tu abbia avuto modo di testare la beta e scrivere un post sui commenti, sarà una delle prime cose da modificare sui nuovi temi :)

    Rispondi
  2. Napolux ha detto:

    Bell’articolo, ma che sbattimento! :mrgreen:

    Rispondi
  3. Eugenio ha detto:

    Uh…ottima cosa i commenti threaded…
    @Napolux: beh, sbattimento dato che i temi attuali non ne fanno uso. Ma una volta che il meccanismo prenderà piede… :)

    Rispondi
  4. Francesco Gavello ha detto:

    C’è anche da dire che ho provato ad adattare Brian’s Threaded Comments qualche tempo fa (prontamente stoppato quando sono uscite le features della 2.7) .

    Un incubo. Tuttavia usato da moltissimi oltreoceano.

    Rispondi
  5. elisa ha detto:

    Wow! un articolo all’avanguardia! ;) Ho sempre pensato che i commenti nidificati agevolassero moltissimo la lettura e la comunicazione. Voglio prorio vedere l’effetto che farà in WordPress. Forse sarà la fine degli @.

    Rispondi
  6. Stefano ha detto:

    Innanzitutto complimenti per il bell’articolo. :D Questo vorrà dire che tutti i temi pre-2.7 saranno semi-incompatibili…
    Ho installato la versione beta 2 di WP 2.7 ma non riesco a vedere nulla riguardo la nidificazione dei commenti… :oops: Potreste darmi qualche indicazione?

    Grazie!

    Rispondi
  7. Francesco Gavello ha detto:

    @Stefano: la nidificazione è attivabile dal pannello “impostazioni” >> “discussione”, flaggando “Enable threaded (nested) comments”.

    Questo dovrebbe, nel tema di default, inserire un link “reply to” sotto a tutti i commenti presenti. Non mi pare che il tema classico sia stato adattato (ancora).

    I temi attuali risulteranno incompatibili solo se si cercherà di flaggare la nidificazione o paginazione senza avere predisposto il giusto codice in comments.php. Credo proprio che il meccanismo a cui siamo tutti abituati rimarrà comunque utilizzabile senza problemi.

    Chi lavora con i temi, potrà poi realizzare del codice valido a prescindere dalla versione installata facendo un controllo sull’esistenza della funzione “wp_list_comments”.

    Come di seguito (dentro a comments.php) :

    < ?php if (function_exists('wp_list_comments')) :
    include (TEMPLATEPATH . "/comments_new.php");
    else :
    include (TEMPLATEPATH . "/comments_old.php");
    endif;

    ?>

    Rispondi
  8. rammit ha detto:

    Sembra veramente figo :D In effetti credo che verrà adottato universalmente parecchio in fretta.

    Rispondi
  9. Stefano ha detto:

    @ Francesco: Grazie mille per la risposta! :D
    Speriamo esca presto la versione definitiva…

    Rispondi
  10. Francesco Gavello ha detto:

    @Stefano: si parla di fine novembre, ma forse riusciremo ad avere una RC per metà mese.

    Rispondi
  11. [...] WordPress 2.7 e commenti nidificati, quello che c’è da sapere Siete già riusciti a mettere le mani sulla nuova release beta 2 di WordPress 2.7? Avete sperimentato tutte le novità dell’interfaccia e della gestione dei contenuti? [...]

    Rispondi
  12. [...] altro blog che ho scoperto da poco è quello di Francesco Gavello, dopo aver letto l’ultimo articolo inserito l’ho aggiunto ai miei [...]

    Rispondi
  13. maxanima ha detto:

    …io per i commenti uso intensedebate e mi trovo benissimo….sia come struttura che come grafica, spero di non doverlo abbandonare ;-)

    Rispondi
  14. Francesco Gavello ha detto:

    @Maxanima: Già, la compatibilità di WP 2.7 con l’enorme quantità di plugin che si agganciano ai commenti sarà tutta da valutare.

    Staremo a vedere :)

    Rispondi
  15. maxanima ha detto:

    Si, però intensedebate è di Automatic…e Automatic fa parte di wordpress, quindi si aggiorneranno anche loro ;-) cmq in rete intensedebate lo stanno mettendo in molti ;-)

    Rispondi
  16. [...] Un’ottima spiegazione in italiano di come la cosa è implementata la trovate in questo post di Francesco Gavello. [...]

    Rispondi
  17. [...] proprio tema grafico ma non voglio tediarvi con lunghe e complicate guide perchè c’è già chi l’ha fatto prima di me in italiano. Ovviamente adesso che WordPress offre queste [...]

    Rispondi
  18. [...] Vi ricordo che per usufruire della funzione di incapsulamento dei commenti è necessario attivare questa caratteristica dal pannello di admin sotto “Impostazioni” >> “Discussione”, flagando “Abilitare i commenti nidificati per n livelli di profondità”. Per una guida dettagliata su come adattare il vostro tema all’utilizzo dei commenti nidificati vi rimando invece all’articolo WordPress 2.7 e commenti nidificati, quello che c’è da sapere [...]

    Rispondi
  19. FX53 ha detto:

    Mi spettavo di vedre i commenti nidificati proprio alla fine dell’articolo ;) ma non li ai inseriti???

    Rispondi
  20. Francesco Gavello ha detto:

    Ero ad un passo da integrarli, avevo rivisto il layout dove necessario… e poi ho scelto di rimandarli alla nuova, oramai imminente, veste grafica di questo blog.

    I consigli di cui sopra rimangono validi, eh! :P

    Rispondi
  21. [...] con piacere un paio di approfondimenti sulle meccaniche di WordPress 2.7 in materia di commenti nidificati. Quando scrissi l’articolo il problema non era propriamente sentito(la release 2.7 era ancora [...]

    Rispondi
  22. [...] ricerchina sul web e ho trovato questo e questo che mi hanno permesso di procedere in modo abbastanza agevole, il risultato, direi che potete [...]

    Rispondi

Lascia un commento

Anteprima commentatore

Personalizza il tuo avatar!
Vai su gravatar.com e carica quello che preferisci!

I commenti sono modificabili entro 5 minuti dal loro inserimento.
Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Solo i commenti firmati con un nome o un nick saranno accettati. Leggi il Regolamento Commenti!