title

Show the count of pingbacks & trackbacks within admin post columns

 

Show the count of pingbacks & trackbacks within admin post columns

13 Mai 2013, Posted by antoine in

This hack simply adds a new column called counts within the admin post columns which display the total number of pingbacks and trackbacks for each post.

Go to functions.php in your theme folder and add following code.

function commentCount($type = 'comments'){
    if($type == 'trackbacks'):
        $typeSql = 'comment_type = "trackback"';
        $oneText = 'One :trackback';
        $moreText = '% :trackbacks';
        $noneText = 'No :trackbacks';
    elseif($type == 'pingbacks'):
        $typeSql = 'comment_type = "pingback"';
        $oneText = 'One :pingback';
        $moreText = '% :pingbacks';
        $noneText = 'No :pingbacks';
    endif;
    global $wpdb;
    $result = $wpdb->get_var('
        SELECT
            COUNT(comment_ID)
        FROM
            '.$wpdb->comments.'
        WHERE
            '.$typeSql.' AND
            comment_approved="1" AND
            comment_post_ID= '.get_the_ID()
    );
    if($result == 0):
        echo str_replace('%', $result, $noneText);
    elseif($result == 1):
        echo str_replace('%', $result, $oneText);
    elseif($result > 1):
        echo str_replace('%', $result, $moreText);
    endif;
}
add_filter('manage_posts_columns', 'posts_columns_counts', 1);
add_action('manage_posts_custom_column', 'posts_custom_columns_counts', 1, 2);
function posts_columns_counts($defaults){
    $defaults['wps_post_counts'] = __('Counts');
    return $defaults;
}
function posts_custom_columns_counts($column_name, $id){
    if($column_name === 'wps_post_counts'){
        commentCount('trackbacks'); echo "<br />";
        commentCount('pingbacks');
          }
}