La función comments_number() de WordPress devuelve el número total de comentarios humanos y trackbacks asociados a una entrada, pero no los valores por separado. Tampoco existe otra función que nos permita saber este dato. La única solución que he encontrado consiste en crear una función que haga una consulta directa a base de datos.
El enlace anterior conduce a una función que devuelve el número total de trackbacks a todas las entradas de un blog:
function trackback_count() {
global $wpdb;
$count = "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_type = 'pingback' OR comment_type = 'trackback'";
echo $wpdb->get_var($count);
}
Me ha servido de base para hacer otras dos, una que devuelve el número de comentarios humanos a una entrada:
function human_comment_count() {
global $wpdb;
global $post;
$postid = $post->ID;
$count = "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_type = '' AND comment_approved = '1' AND comment_post_ID = '$postid'";
$counter = $wpdb->get_var($count);
if ( $counter == 0 ) { echo "No hay comentarios"; }
elseif ( $counter == 1 ) { echo "Un comentario"; }
else { echo "$counter comentarios"; }
}
Y otra que devuelve los trackbacks a una entrada:
function trackback_count() {
global $wpdb;
global $post;
$postid = $post->ID;
$count = "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_type = 'pingback' AND comment_approved = '1' AND comment_post_ID = '$postid'";
$counter = $wpdb->get_var($count);
if ( $counter == 0 ) { echo "No hay trackbacks"; }
elseif ( $counter == 1 ) { echo "Un trackback"; }
else { echo "$counter trackbacks :: $post->ID"; }
}
Cómo saber el número de comentarios y de trackbacks por separado que tiene una entrada en WordPress
La función comments_number() de WordPress devuelve el número total de comentarios humanos y trackbacks asociados a una entrada, pero no los valores por separado. Tampoco existe otra función que nos permita saber este dato. La única solución que he encontrado consiste en crear una función que haga una consulta directa a base de datos.
El enlace anterior conduce a una función que devuelve el número total de trackbacks a todas las entradas de un blog:
Me ha servido de base para hacer otras dos, una que devuelve el número de comentarios humanos a una entrada:
Y otra que devuelve los trackbacks a una entrada: