HOWTO: Separare commenti e trackbacks in WordPress | Flavio's blog


HOWTO: Separare commenti e trackbacks in WordPress

Pochi giorni fa abbiamo visto come fare in modo che WordPress non contasse il numero di trackbacks nei commenti al post.

Adesso vogliamo separare, nella parte finale del post dedicata ai commenti degli utenti, i commenti REALI ed i trackbacks/pingbacks, secondo questo modello:

POST

————

COMMENTI (NUMERO COMMENTI)

TRACKBACKS (NUMERO TRACKBACKS)

In questo modo il blog risulterà più pulito ed ordinato.

Andiamo ad aprire il file functions.php del vostro tema di wordpress, ed inseriamo questo codice:

//funzione per contare il numero di trackbacks e pingbacks
function trackback_count() {
global $wpdb;
$post_id = get_the_ID();
$post_ping_count = $wpdb->get_var("SELECT count(comment_id) FROM $wpdb->comments WHERE comment_type in ('pingback',
'trackback') and comment_approved = 1 and comment_post_id = $post_id");
echo $post_ping_count;
}

Questo codice estrapola il numero di trackbacks e pingbacks dal numero totale dei commenti generici, in modo che possiamo sapere QUANTI trackbacks ha il nostro post.

Poi, prendendo spunto da Problogdesign.com, andiamo a modificare il modo in cui il template mostra i nostri commenti.

Apriamo il file comments.php e cerchiamo la riga

<?php foreach ($comments as $comment) : ?>

e subito dopo andiamo ad incollare questo codice:

<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type == 'comment') { ?>

Adesso cerchiamo la linea:

<?php endforeach; /* end for each comment */ ?>

e subito prima inseriamo questo codice:

<?php } else { $trackback = true; } /* End of is_comment statement */ ?>

In questo modo i commenti non visualizzeranno più i trackbacks.

Adesso andiamo a mostrarli DOPO la parte dedicata ai commenti.
Cerchiamo la linea

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

e subito prima andiamo ad incollare questo codice:

<br/>
<h3><?php trackback_count(); ?> Trackbacks/Pingbacks</h3>
<ol>
<?php foreach ($comments as $comment) : ?>
<?php $comment_type = get_comment_type(); ?>
<?php if($comment_type != 'comment') { ?>
<li><?php comment_author_link() ?></li>
<?php } ?>
<?php endforeach; ?>
</ol>

Questo mostrerà il numero di trackbacks e pingbacks, e ne farà un elenco, proprio come alla fine di questo post.

Chuinque abbia usato questo codice, ed abbia dubbi o commenti, lasci pure un commento qui sotto con la propria esperienza!



1 Commento »

Per piacere accetta i cookie di terze parti per poter commentare il post! Il pulsante CAMBIA LE SCELTE DEI COOKIE si trova nel footer del sito. / In order to comment this post, please accept the third party cookies! The button CAMBIA LE SCELTE DEI COOKIE is in the footer of the website.