La versione 2012 di Disqus, purtroppo, non supporta più i pingbacks. La funzionalità è stata sostituita dalle “Reazioni”, che però non mostrano, appunto, tutti i trackback di ritorno da altri blog WordPress che abbiano deciso di linkare un nostro post.

Vediamo insieme come, con qualche semplice intervento sul codice PHP, sia possibile rimettere le cose a posto

Step 1

Troviamo all’interno del nostro single.php una riga simile a questa:

<?php comments_template(); ?>

Step 2

Immediatamente sopra, inseriamo questa altra riga:

<?php DisplayPingTrackbacks(); ?>

Step 3

Apriamo il file functions.php del nostro tema e verso la fine dello stesso aggiungiamo:

function DisplayPingTrackbacks() {

    // Do not do anything if Disqus is not installed
    if(!dsq_is_installed()) return;

    $current_post_ID = get_the_ID();

    global $wpdb;

    $sql =  "SELECT comment_author_url, comment_date, comment_content, comment_author FROM $wpdb->comments WHERE comment_post_ID = $current_post_ID AND comment_approved = '1' AND (comment_type = 'pingback' OR comment_type = 'trackback') ORDER BY comment_date ASC";

    if ($post_pingtrackbacks = $wpdb->get_results($sql) ) {

        $number_of_pingtrackbacks = count($post_pingtrackbacks);

        if ($number_of_pingtrackbacks == 1) {
            echo "<div id='pingtrackback'><h3 style='font-size:16px;margin-bottom:10px'>One Pingback/Trackback</h3><ul>";
        } else {
            echo "<div id='pingtrackback'><h3 style='font-size:16px;margin-bottom:10px'>" . $number_of_pingtrackbacks . " Pingbacks/Trackbacks</h3><ul>";
        }

        foreach ($post_pingtrackbacks as $post_pingtrackback) {

                        echo "<strong>";
                        echo date( 'd F Y \a\t g:ma', strtotime( $post_pingtrackback->comment_date ));
                        echo "</strong><br />";
            $comment_summary = $post_pingtrackback->comment_content;
            echo substr( $comment_summary, 0, strrpos( substr( $comment_summary, 0, 90), ' ' ) ) . ' ...';

                        echo "\n<li><a href='";
            echo $post_pingtrackback->comment_author_url;
            echo "'>";
            $author = $post_pingtrackback->comment_author;
            echo html_entity_decode($author);
            echo "</a>";
            echo "</li>";
        }
        echo "</ul></div>";
        }
}

Ecco fatto!

Aggiornamento: per chi non è esperto di php, esiste anche un buon plugin che si occupa di fare tutto il lavoro in automatico. Lo trovate qui: http://wordpress.org/extend/plugins/force-ping-display-with-disqus/

Via | TheITBros