LasIndias.blog

Conquistar el trabajo es reconquistar la vida

Grupo de Cooperativas de las Indias

videoblog

libros

Mostrar el número de comentarios con «Sitewide Tags»

Un hack para que el plugin «sitewide tags» os permita mostrar el número de comentarios de los posts de blogs distintos de él mismo en el blog de agregación.

Primero fue Arrsa!, luego Entramado y ahora Filé Aesir: los distintos grupos neovenecianos han ido agrupándose en instalaciones multiusuario de WordPress primero y generando en cada una su propio blog de agregación. Para crear este tipo de blogs recomendamos habitualmente el plugin Sitewide tags. Pero tiene una pega: muestra sin problemas el número de comentarios recibidos en el blog de agregación, pero los de los demás blogs de la instalación aparecen a cero. De hecho, en el Correo de las Indias ni siquiera los mostrábamos, resultaba engañoso.

Ayer, Gabriel, de Filé Aesir nos preguntó si sabíamos resolverlo. Y esta tarde nos pusimos manos a la obra. Hay muchos hilos en los foros de WordPress dedicados al tema. Y en uno de ellos, casi casi lo consiguieron resolver, pero al final las soluciones aportadas invertían el problema, se mostraba bien solo el número de comentarios de los blogs diferentes del principal, pero no los recibidos en él. En realidad solo le faltaban un par de líneas. El truco era usar una variable que genera el plugin en cada post y que queda en blanco en los posts escritos directamente en el blog principal. Así se pueden distinguir unos de otros y ofrecer el resultado correcto en cada caso.

Así que si queréis mostrar el número de comentarios en la página principal, solo tenéis que añadir esta función en la página de funciones del tema que uséis en la portada.

<?php

function ds_sitewide_tags_get_comments_num($count) {

  global $blog_id, $wpdb, $post;

$dequieneres = get_post_meta ($post->ID, 'blogid', true);
if ($dequieneres=='') return $count;

	//guid format is http://{blogid}.{postid}
	list( $post_blog_id, $post_id ) = explode( '.', substr($post->guid, 7));

	$wpdbobj = clone $wpdb;
	$wpdb->blogid = $post_blog_id;
	$wpdb->set_prefix( $wpdb->base_prefix );
	$r = $wpdb->get_var( "SELECT comment_count FROM $wpdb->posts WHERE ID=$post_id" );
	$wpdb = clone $wpdbobj;

	if (is_null($r)) return 0;
	return ($r);
}


add_filter('get_comments_number', 'ds_sitewide_tags_get_comments_num');


?>

Ah! Un último detalle, para mostrar el número de comentarios usad la función «comments_number», por ejemplo así:

<a href="<?php comments_link(); ?>">
<?php comments_number('0', '1', '%'); ?>
</a>

«Mostrar el número de comentarios con «Sitewide Tags»» recibió 0 desde que se publicó el Sábado 22 de Junio de 2013 . Si te ha gustado este post quizá te gusten otros posts escritos por las Indias.

Deja un comentario

Si no tienes todavía usuario puedes crear uno, que te servirá para comentar en todos los blogs de la red indiana en la
página de registro de Matríz.