Nella parte amministrativa di WordPress sarebbe utile avere accanto ad ogni post il numero totale dei pingback e dei trackback. Possiamo ottenere questo risultato definendo un filtro ed un'azione personalizzata. Vediamo come fare.
Aggiungete il seguente codice al file functions.php
:
function commentCount($type = 'comments'){
if($type == 'trackbacks'):
$typeSql = 'comment_type = "trackback"';
$oneText = '1 :trackback';
$moreText = '% :trackbacks';
$noneText = 'Nessun :trackbacks';
elseif($type == 'pingbacks'):
$typeSql = 'comment_type = "pingback"';
$oneText = '1 :pingback';
$moreText = '% :pingback';
$noneText = 'Nessun :pingback';
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'] = __('Conteggio');
return $defaults;
}
function posts_custom_columns_counts($column_name, $id){
if($column_name === 'wps_post_counts'){
commentCount('trackbacks'); echo "<br />";
commentCount('pingbacks');
}
}