Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo saber el número de comentarios y de trackbacks por separado que tiene una entrada en WordPress

Imago voragine.net

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"; }
}

Dejar un comentario

No hay comentarios en esta entrada.
*
*

 

No hay trackbacks