WordPress 2.7 Commenti Nidificati e Paginati


Con WordPress 2.7 sono stati introdotti i commenti nidificati e paginati modificando e semplificando il loop dei commenti.

La prima cosa da fare è aprire il file del nostro tema header.php e cercare

[sourcecode language=’php’]< ?php wp_head(); ?>[/sourcecode]

Inserite nella riga prima :

[sourcecode language=’php’] < ?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>[/sourcecode]

Salvate il fie.

Ora passiamo al template dei commenti, personalmente vi suggerisco di evitare di andare a modificare il file comments.php del vostro tema perchè la nuova funzione   [sourcecode language=’php’] wp-list_comments[/sourcecode] racchiude in se tutte le funzionalità e crea diverse nuove classi che dovranno essere definite nel vostro style.css.


Rinominate il file comments.php in comments.old e copiate nella cartella del vostro tema il file comments.php del tema standard.
Analizziamo le varie parti del nuovo comments.php

[sourcecode language=’php’] < ?php // Do not delete these lines if (isset($_SERVER['SCRIPT_FILENAME']) &amp;amp;amp;amp;&amp;amp;amp;amp; 'comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) die ('Please do not load this page directly. Thanks!'); if ( post_password_required() ) { ?>

< ?php _e('This post is password protected. Enter the password to view comments.', 'kubrick'); ?>

< ?php return; } ?>[/sourcecode]

Questo è il nuovo codice per la gestione dei post protetti da password.

Questo invece come si presenta il nuovo loop dei commenti

[sourcecode language=’php’]< ?php if ( have_comments() ) : ?>

< ?php comments_number(__('No Responses', 'kubrick'), __('One Response', 'kubrick'), __('% Responses', 'kubrick'));?> < ?php printf(__('to &amp;amp;amp;amp;#8220;%s&amp;amp;amp;amp;#8221;', 'kubrick'), the_title('', '', false)); ?>

    < ?php wp_list_comments();?>

< ?php else : // this is displayed if there are no comments so far ?>

< ?php if ('open' == $post->comment_status) : ?>

< ?php else : // comments are closed ?>

< ?php _e('Comments are closed.', 'kubrick'); ?>

< ?php endif; ?>
< ?php endif; ?>
[/sourcecode]

Per prima cosa controlla se ci sono commenti e se ci sono la funzione [sourcecode language=’php’] wp-list_comments[/sourcecode] gestisce tutto i vecchio ciclo foreach e racchiude tutti  i dati del commento e crea tutte le classi necessarie per gravatar, data, nichname indirizzo web etc.

Se i commenti sono aperti  [sourcecode language=’php’]< ?php if ('open' == $post->comment_status) : ?>[/sourcecode]

ecco il box dei commenti [sourcecode language=’php’]

< ?php comment_form_title( __('Leave a Reply', 'kubrick'), __('Leave a Reply for %s' , 'kubrick') ); ?>

< ?php cancel_comment_reply_link() ?>

< ?php if ( get_option('comment_registration') &amp;amp;amp;amp;&amp;amp;amp;amp; !$user_ID ) : ?>

< ?php printf(__('You must be logged in to post a comment.’, ‘kubrick’), get_option(‘siteurl’) . ‘/wp-login.php?redirect_to=’ . urlencode(get_permalink())); ?>

< ?php else : ?>

%2$s.’, ‘kubrick’), get_option(‘siteurl’) . ‘/wp-admin/profile.php’, $user_identity); ?> />

/>

< ?php _e('Website', 'kubrick'); ?>

< ?php endif; ?>

wp_list_comments (Pagina in aggiornamento ul codex ufficiale), vi crea le classi per alternare i commenti (per poterli avere differenti formattazioni da pari e dispari, per gestire la visualizzazione degli avatar, per gestire la formattazione dei vari livelli del tread e per tutto ciò che riguarda i commenti 🙂

[sourcecode language=’css’]

.thread-alt {
background-color: #f8f8f8;
}

.thread-even {
background-color: white;
}
.depth-1 {
border: 1px solid #ddd;
}

.even, .alt {
border-left: 1px solid #ddd;
}

.commentlist li, #commentform input, #commentform textarea {
font: 0.9em ‘Lucida Grande’, Verdana, Arial, Sans-Serif;
}

.commentlist li ul li {
font-size: 1em;
}

.commentlist li {
font-weight: bold;
}

.commentlist li .avatar {
float: right;
border: 1px solid #eee;
padding: 2px;
background: #fff;
}

.commentlist cite, .commentlist cite a {
font-weight: bold;
font-style: normal;
font-size: 1.1em;
}

.commentlist p {
font-weight: normal;
line-height: 1.5em;
text-transform: none;
}

#commentform p {
font-family: ‘Lucida Grande’, Verdana, Arial, Sans-Serif;
}

.commentmetadata {
font-weight: normal;
}
#commentform {
margin: 5px 10px 0 0;
}

#commentform input {
width: 170px;
padding: 2px;
margin: 5px 5px 1px 0;
}

#commentform textarea {
width: 100%;
padding: 2px;
}

#respond:after {
content: “.”;
display: block;
height: 0;
clear: both;
visibility: hidden;
}

#commentform #submit {
margin: 0 0 5px auto;
float: right;
}

/* Begin Comments*/
.alt {
margin: 0;
padding: 10px;
}

.commentlist {
padding: 0;
text-align: justify;
}

.commentlist li {
margin: 15px 0 10px;
padding: 5px 5px 10px 10px;
list-style: none;
}
.commentlist li ul li {
margin-right: -5px;
margin-left: 10px;
}

.commentlist p {
margin: 10px 5px 10px 0;
}
.children { padding: 0; }

#commentform p {
margin: 5px 0;
}

.nocomments {
text-align: center;
margin: 0;
padding: 0;
}

.commentmetadata {
margin: 0;
display: block;
}
/* End Comments */
[/sourcecode]

Come potete vedere la gestione del loop dei commenti è decisamente semplificata ma, per aggiornare i temi è necessario un lavoro non indifferente sui CSS per dargli l’aspetto coerente al vostro tema, quindi armatevi di tanta pazienza, fate i backup dei vostri file e cominciate a lavorare 🙂

Come dividere i commenti dai pingback e dai trackback?

Niente di più semplice ora, utilizzando la funzione wp_list_comments:

[sourcecode language=”php”]

    < ?php wp_list_comments('avatar_size=64&type=comment');?>

Trackbacks/Pingbacks

    < ?php wp_list_comments('type=pings'); ?>

[/sourcecode]

la funzione wp_list_comments() accetta molti parametri tra i quali il tipo di commento, in questo caso il codice che vedete è quello che potete vedere in funzione sul mio blog, c’è una prima OL dove imposto le dimensioni dell’avatar e gli dico di elencare solo i commenti e subito dopo una seconda OL dove invece gli dico di elencare solo i pings (trackback e pingback).

ATTENZIONE QUESTO CODICE NON E’ RETROCOMPATIBILE QUINDI SE VOLETE AVERE UN CODICE CHE FUNZIONI CON LE VECCHIE VERSIONI DI WORDPRESS E ANCHE CON LA 2.7 SEGUITE QUESTO TUTORIAL.

Hai qualche Domanda o vuoi Commentare?

28 commenti su “WordPress 2.7 Commenti Nidificati e Paginati

gfelice

Dove va inserito il codice per dividere i commenti dai pingback e dai trackback?

Cioè questo:
1.
2.
3.
4. Trackbacks/Pingbacks
5.
6.
7.

?

Reply

nel file comments.php nel loop, leggi il tutorial e guarda dove è posizionato il wp_list_comments.

Reply

Ottima guida!! Solo due domande…

1) E’ possibile numerare i commenti?

2) Per distinguere il commento dell’autore dell’articolo c’è qualcosa di nuovo? ho un po’ di difficoltà a capire come fare!!)

Matteo

Reply

1) non l’ho ancora guardato ma credo di si

2) .bypostauthor dovrebbe essere la classe che crea da definire nel CSS.

Reply

Io uso intensedebate per i commenti, faccio prima, funziona benissimo, è più bello graficamente e ha molte più opzioni….in più compatibile con wp 2.7 😉

Reply

intense debate lo sconsiglio, funziona malissimo, è pieno di bug, perdete i commenti dal vostro blog, mette le date non sulle vostre impostazioni, duplica triplica i trackback e potrei continuare all’ininito.

Reply

io ho un grosso problema con i commenti, non riguarda la nidificazione ma la moderazione. continuo a ricevere email per approvare commenti che di per se non contengono ne link, ne parole censurate ne altro. l’80% dei commenti che arrivano non vengono automaticamente pubblicati, contrariamente a quanto è stato impostato nella relativa pagina “Discussione”

ho anche provato ad eliminare tutte le parole e gli ip da moderare, e nonstante abbia una lista completametne vuota, wordpress continua a mandarli in moderazione

Reply

Fabiano per l’assistenza c’è il forum qui sei oltretutto OT.

Reply

grazie wolly, comunque a me non da problemi per ora, casomai disattivarlo non succede niente 😉

Reply

in realtà se lo disattivi vai incontro ad altri problemi, sparizione di commenti, ordine sballato dei commenti ed altre amenità 🙂

Reply

ussignor che catastrofe 😉 va bè, vedremo, ora corro sul forum perchè ho un problema con i feed ma di un altro blog 😉

Reply

Ciao!! volevo chiedervi ma questa modifica ai commenti del proprio tema è obbligatoria dopo aver installato la 2.7 ???? lo chiedo perché 1) non o riscontrato problemi ai commenti 2) dal post non si capisce il perché di questa modifica!! se necessari o opzionale!!. Chiedo scusa anticipatamente il mio non vuole essere una critica al post!! ma solamente un chiarimento se questa modifica è necessaria per non incappare in spiacevoli inconvenienti!! oppure se è facoltativa. Grazie e complimenti per l’aiuto.

Reply

la modifica non obbligatoria, la fai se vuoi avere i commenti nidifcati e paginati se invece ti va bene come li hai adesso non devi modificare nulla 🙂

Reply

Ora provo la modifica…

Reply

Scusa, per quel poco di PHP che conosco, il codice corretto è:

<?php

e non

<? php

o sbaglio?

Reply

Ragazzi forse c’è un errore di traduzione per:
#
#

Su next_comments_links mi esce commenti precedenti che è lo stesso che appare su previous_comments_links, mi date conferma per favore?

Tnx.

Reply

Oltre a segnalare quanto dice Traffyk, volevo dirvi che il permalink al singolo commento della prima pagina di un articolo è errato.

Mi stavo inoltre chiedendo che è possibile far spuntare i numeri della paginazione perchè altrimenti quando abbiamo 25 pagine di commenti l’utente deve cliccare 25 volte prima di arrivare all’ultima.

🙂

Reply

@Giorgio è un bug già risolto, prima c’era la patch ma ora che è uscita la 2.7.1 basta aggiornare.
ciao

Reply

Grazie Wolly per la notizia 🙂

Provo a controllare se riesco in qualche modo a fare la paginazione con i numeri.

Reply

Dopo ore di navigazione sono riuscito a trovare quello che mi interessava, ho letto il tuo articolo e l’ho trovato interessante.
Grazie Claudio

Reply

Intanto grazie delle spiegazioni, fix apportati. Ho pero’ un problema: con firefox visualizzo correttamente i gravatar, mentre con internet explorer non compaiono. Come sistemare? Via css?
Grazie

Reply
fil

Scusate ma questa guida vale anche per wp 2.9.2?

Reply

[…] 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 funzionalità direttamente […]

[…] alcune piccole altre novità, social bookmarking, navigazione pagine e quasi sicuramente la gestione dei commenti nidificata ed altre piccole ma utili […]

[…] WordPress 2.7 Commenti Nidificati e Paginati (18) […]

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

[…] WordPress 2.7 Commenti Nidificati e Paginati » WordPress Italy Blog inserire replica nei commenti… speriamo bene (tags: wordpress wp commenti) […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Archivi

Categorie