26
Jun 08
Contador de trackbacks en Wordpress
Guardado bajo la categoría: PHP, WordpressUna función que Wordpress no trae por defecto es la de contar los trackbacks, y mientras armaba la plantilla para este weblog y separaba los comentarios de las respuestas generadas por otros blogs me di cuenta que el valor que devolvia el contador incluia el número de comentarios y el número de trackbacks.
Después de pasear un rato por Google buscando la forma de separar estos dos valores, encontre el modelo de consulta a la base de datos de Wordpress para obtener ambos resultados.
-
SELECT COUNT(*) FROM $wpdb->comments WHERE comment_post_ID = '$id' AND comment_approved = '1' AND comment_type != ''
Y luego con un simple código PHP podemos obtener, por un lado el número de comentarios y por otro el número de trackbacks que tiene nuestro post:
Número de Comentarios:
-
<?php
-
//contador de trackbacks
-
$comentarios = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_post_ID = '$id' AND comment_approved = '1' AND comment_type = ''"); //consultamos la base de datos
-
if ($comentarios == '0') { //si no hay comentarios
-
echo('<h3>Esta entrada no tiene comentarios</h3>');
-
}
-
elseif ($comentarios == '1') { //si hay 1 comentario
-
echo('<h3>Esta entrada tiene un comentario</h3>');
-
}
-
else { //si hay mas de 1 comentarios
-
echo('<h3>Esta entrada tiene '.$comentarios.' comentarios</h3>');
-
}
-
?>
Número de Trackbacks
-
<?php
-
//contador de trackbacks
-
$trackbacks = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_post_ID = '$id' AND comment_approved = '1' AND comment_type != ''"); //consultamos la base de datos
-
if ($trackbacks == '0') { //si no hay trackbacks
-
echo('<h3>Esta entrada no tiene trackbacks</h3>');
-
}
-
elseif ($trackbacks == '1') { //si hay 1 trackback
-
echo('<h3>Esta entrada tiene un trackback</h3>');
-
}
-
else { //si hay mas de 1 trackback
-
echo('<h3>Esta entrada tiene '.$trackbacks.' trackbacks</h3>');
-
}
-
?>
Ambos códigos los incluimos dentro del archivo comments.php, dentro de la carpeta donde enta ubicada nuestro theme, en el lugar donde queremos que aparezca el mensaje.