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 😉


26 commenti/trackback a “WordPress: differenziare i trackback dai commenti”

  1. capemaster scrive:

    utile… credo che la proverò

  2. Traffyk scrive:

    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!

  3. flod scrive:

    Direi che funziona 😉

  4. Traffyk scrive:

    Si molto bello, i commenti sopra e i trackback sotto. PROMOSSO A PIENI VOTI :d

  5. capemaster scrive:

    lo sto testando, ma devo ripristinare alcune cose che avevo, tipo le mie classigrafiche… cmq mi piace.

  6. capemaster scrive:

    sai che ho messo direttamente il tuo comments.php e mi piace

    tanto per cambiare 🙂

  7. flod scrive:

    Però c’è qualche problemino con gli avatar (esempio) 😕

  8. Uncino scrive:

    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

  9. flod scrive:

    ‘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).

  10. neon scrive:

    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 trackback

  11. Antonio scrive:

    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

  12. flod scrive:

    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 😉

  13. flod scrive:

    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 🙁

  14. Antonio scrive:

    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

  15. neon scrive:

    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.

  16. flod scrive:

    @neon il tuo commento l’ho letto ma io non uso quella funzione (oppure non ho assolutamente capito il primo commento) 😕

  17. neon scrive:

    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 🙂

  18. Traffyk scrive:

    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.

  19. flod scrive:

    @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 😉

  20. BiGAlex scrive:

    Grazie mille del tutorial, molto utile ^_^

  21. HyperLink scrive:

    :=) grazie mille!!!!! utilissimo!

  22. Carlo scrive:

    MITICO… grazie.
    Era proprio quello che cercavo!
    Funziona perfettamente 🙂

Trackback e pingback

  1. 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 » Wordpress: differenziare…
  2. ..::BiGAlex.it::..
    Blocco spam dai trackback + modifica al template... Ho notato che una parte dello spam continua comunque ad arrivare, ma…
  3. 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,…
  4. 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…

Non è possibile inserire nuovi commenti. I commenti vengono disattivati automaticamente dopo 60 giorni.