Wordpress: differenziare i trackback dai commenti
22 Agosto 2007
Dopo aver modificato il tema originale per differenziare i commenti, domenica pomeriggio ho approfittato di un attimo di tempo libero per fare un’ulteriore modifica sul template e separare i trackback e i pingback dai commenti normali.
WordPress, credo dalla versione 1.5, considera trackback e pingback come normali commenti, inserendoli nella cronologia della discussione: personalmente trovo la cosa abbastanza fastidiosa, soprattutto quando i collegamenti esterni cominciano a diventare numerosi. L’idea di fondo è quella di separarli dai commenti tradizionali e visualizzarli in modo visivamente diverso.
Fortunatamente non c’è molto lavoro da fare: è sufficiente sfruttare il valore dell’attributo comment_type e ripetere per due volte il ciclo sui commenti, uno per visualizzare i commenti standard e un altro per visualizzare trackback e pingback.
Ecco la struttura semplificata:
foreach ($comments as $comment) : if ($comment->comment_type != "trackback" && $comment->comment_type != "pingback") { *** Inserisco il codice per visualizzare i commenti *** } endforeach; foreach ($comments as $comment) : if ($comment->comment_type == "trackback" || $comment->comment_type == "pingback") { *** Inserisco il codice per visualizzare trackback e pingback *** } endforeach;
Nel mio caso ho preferito introdurre un’ulteriore differenziazione: per visualizzare i commenti utilizzo la funzione comment_text(), per i trackback uso comment_excerpt(), mostrando solo una sintesi del “commento”.
Per chi fosse interessato, questo è l’attuale codice completo del mio comments.php, sicuramente migliorabile ma perfettamente funzionante
Ai trackback viene associata una classe diversa rispetto ai commenti standard, per cui è possibile utilizzare il foglio di stile per modificarne l’aspetto: in fondo a questa pagina, ad esempio, potete vedere i trackback e i pingback separati dai commenti. Sta a voi decidere se posizionarli prima o dopo i commenti standard
24 commenti/trackback a “Wordpress: differenziare i trackback dai commenti”
Trackback e pingback
- pseudotecnico:blog » Wordpress: differenziare i trackback dai commenti » Traffyk, my shared items
[...] categoria , trackback Provo subito a fargli un trackback e vediamo il capolavoro di PseudoTecnico pseudotecnico:blog » ... - ..::BiGAlex.it::..
Blocco spam dai trackback + modifica al template... Ho notato che una parte dello spam continua comunque ad arrivare, ma non ... - Come migliorare il proprio blog: articoli correlati e gestione dei trackback - Matteo Moro
[...] nei commenti”, ho deciso che era arrivato il momento di tenerli separati e ho trovato l’ottimo articolo di Pseudotecnico, ... - Nasce viklog: hosting e tema scelto, plugin installati e dovuti ringraziamenti. -- viklog
[...] mondo del blogging e del web2.0 e PseudoTecnico che mi ha aiutato indirettamente con il suo file comment.php. L’ultimo ...











22 Agosto 2007 alle 14:15
utile… credo che la proverò
22 Agosto 2007 alle 15:10
Ho provato a inviarti un track così vediamo il risultato
Da tempo cercavo una cosa del genere, anche se poi mi sono sempre dimenticato, la implementerò nel tema appena posso.
GRAZIE MILLE!
22 Agosto 2007 alle 15:19
Direi che funziona
22 Agosto 2007 alle 15:37
Si molto bello, i commenti sopra e i trackback sotto. PROMOSSO A PIENI VOTI :d
22 Agosto 2007 alle 15:38
lo sto testando, ma devo ripristinare alcune cose che avevo, tipo le mie classigrafiche… cmq mi piace.
22 Agosto 2007 alle 16:05
sai che ho messo direttamente il tuo comments.php e mi piace
tanto per cambiare
22 Agosto 2007 alle 16:13
Però c’è qualche problemino con gli avatar (esempio)
22 Agosto 2007 alle 22:12
Io uso un metodo indicato da Rachel Cunliffe di cre8d design per dividere i trackbacks/pingbacks dai commenti (link).
Ed uso poi il plugin Favatars per inserire, accanto ai nomi dei blog che inviano trackback/pingback le loro favicon
22 Agosto 2007 alle 22:21
’sta cosa delle fototessere accanto ai commenti non mi ha mai ispirato granché (infatti non sono iscritto a nessuno di questi servizi e non prevedo di implementarle a breve)
Da un’occhiata al codice direi che è molto simile, cambiano solo le condizioni (quelle che ho imposto io sono più restrittive) e l’ordine (prima i trackback e poi i commenti).
23 Agosto 2007 alle 11:44
Io lo faccio da tempo ed effettivamente la reputo una cosa fondamentale.
Ti manca l’ultimo tocco di classe
modificare la funzione
comments_popup_link()in modo da ignorare i trackback24 Agosto 2007 alle 14:43
Non vorrei aver contato male (succede spesso…) ma il contatore il alto segna 11, mentre i commenti sono 10 e il trackback uno. Forse vale la pena di separare anche il conteggio degli uni da quello degli altri, oppure modificare l’etichetta?
Antonio
24 Agosto 2007 alle 15:02
Non hai contato male ed hai ragione: devo solo capire come fare
Di sicuro in qualche modo è possibile, visto che il plugin nella sidebar (Brian’s Latest Comments) segnala il numero dei commenti e non quello di commenti+trackback
24 Agosto 2007 alle 15:06
Uff… Il plugin fa una query escludendo i trackback e i pingback, ed è una cosa che vorrei evitare (vorrei riusare la query già presente evitando un’ulteriore operazione sul DB): a questo punto ho l’impressione che la strada più veloce sia quella di modificare la dicitura
25 Agosto 2007 alle 16:07
Che va comunque bene voglio dire, anzi, forse piuttosto che mettere due totali ne va bene uno generico. Ne approfitto per ringraziarti per il post, che mi tornerà presto utile. Ciao ciao, Antonio
26 Agosto 2007 alle 15:31
Ma il mio commento non è stato proprio letto?
Comunque basta applicare un filtro a “get_comments_number”, certo in questo modo fai una query in più ma è più pulito.
Se vuoi evitare la query in più basta riscrivere la funzione in modo da farle effettuare direttamente la query senza trackback (evitando quella che comunque WP effettua), questo è il modo che ho usato io.
26 Agosto 2007 alle 15:35
@neon il tuo commento l’ho letto ma io non uso quella funzione (oppure non ho assolutamente capito il primo commento)
26 Agosto 2007 alle 15:58
Se non erro nell’index.php la funzione che crea il link ai commenti si chiama comments_popup_link() (quella a cui si passano i tre parametri “1 commento” “2 commenti” “n commenti”)
Questa funzione fa uso della funzione get_comments_number() per ottenere il numero dei commenti, quindi basta copiarla completamente e rinominarla ad esempio in comments_only_popup_link() e riscrivere solo la funzione che conta i commenti.
se vuoi ti invio le mie gli dai un occhiata e facciamo prima
26 Agosto 2007 alle 16:01
Se il commento è di tipo trackback decrementi di uno, se di tipo commento incrementi. Io sul mio guestbook ad esempio uso il contatore per invertire l’ordine e numero dei commenti.
26 Agosto 2007 alle 17:21
@neon: ok, adesso ho capito
Ho ricevuto il file via mail: per il momento ho optato per cambiare le diciture sia in index.php che in comments.php, se dovessi cambiare idea lo sfrutterò sicuramente
14 Settembre 2007 alle 13:25
Grazie mille del tutorial, molto utile ^_^