Tres meses atrás publiqué la solución a un error uno de los plugins más sociales con los que estuve trabajando. El plugin era Backtype Connect y hace poco desapareció del escenario de muchos blogs luego que anunciara el que ya no seguiría dando soporte al plugin debido a los altos costes que suponía el mantenimiento de su servidor. Los comentarios se guardaban en sus almacenamientos. ¿El fin? No.
Muchos nos pusimos tristes con esta noticia y buscamos otras alternativas, como DISQUS, que no me terminaba de convencer. Así que ayer me puse a la caza de un plugin que hiciera algo de ello. Sabía cómo funcionaba el sistema de Topsy, así que quise encontrar la solución ideal muy similar al cómo funcionaba Backtype Connect, pero mejor.
Recomendación inicial: Toda edición del código del plugin debe ser realizada antes de activarlo para que los cambios se reflejen una vez activado. Es como recomendación, ya que sino deberán desactivar y activar nuevamente. Sean muy cuidadosos al tocar el código y, de ser posible, creen una copia de respaldo de su base de datos.
Comenzaré hablando del plugin para que entiendan el cómo funciona y sus características y luego seguiré con las ediciones al código, explicando muy suscintamente lo que hacen, sin ser demasiado técnicos, aunque si desean discutir sobre el código, no tendré ningún problema en que me dejen sus comentarios y responderles.
Topsy plugin para WordPress
El plugin Topsy para WordPress permite insertar sus botones sociales automáticamente en casi todas las páginas del blog, ya sean páginas, posts, portada, categorías, etc. Además de ello, y esa es la opción interesante, es que como funcionalidad opcional es capaz de detectar todos los trackbacks que hagan referencia a tus posts en Twitter.
Es claro que con Topsy no podremos generar la misma serie de backlinks o menciones generadas en otras grandes redes sociales como Digg, Reddit o Facebook, pero tiene una ventaja particularmente importante con respecto a su antecesor de uso:
Topsy extrae los comentarios de su base de datos y las guarda en nuestra base de datos local.
Con esto evitamos que pase lo que pasó con Backtype: Desaparición de todas nuestras reacciones y comentarios del blog.
También tenemos estadísticas gratuitas de los artículos y de nuestra página. Por decir algo:
http://topsy.com/tb/www.tecnologiadiaria.com
http://topsy.com/tb/www.tecnologiadiaria.com/2008/09/refranes-blogger.html
Para complementar podemos filtrar reacciones en Twitter de ciertos usuarios, como por ejemplo, filtrar los retweets de la propia cuenta del blog cuando se publica una noticia. Podemos personalizar los hashtags o atribuir los retweets a una cierta cuenta de Twitter con @. Personalizar los colores de los botones sociales, los tamaños, textos, filtrar por categoría, etc.
Modificando comentarios Topsy con avatares
Una de las cosas que no me gustaron de Topsy inicialmente era que no permitía mostrar los avatares de la gente que comentaba vía Twitter, por lo que todos se consideraban como gravatares de mistery man (hombre misterioso).
Esto se pudo solucionar gracias a una función de WordPress Codex que sobreescribe la función que permite obtener un avatar de los comentarios en WordPress, me refiero a la función get_avatar y a un hook para complementarlo (como lo usaban aquí, en Semageek).
Lo que haremos entonces será añadir la función que captura el avatar (separada en dos) y la que lo ejecuta y sobreescribe (el hook add_filter). Para eso buscaremos la línea 28 a la 30 donde hay solo lo siguiente:
28 29 30 | function shortcode_topsy_retweet_small() { return topsy_generate_retweet_button('small'); } |
Y lo cambiaremos por (las 3 primeras líneas permanecen invariables):
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | function shortcode_topsy_retweet_small() { return topsy_generate_retweet_button('small'); } add_filter('get_avatar', 'knx_get_avatar', 10, 5); function knx_get_avatar($avatar, $id_or_email, $size='96', $default='', $alt='') { if (!is_object($id_or_email) && $comment_ID = get_comment_ID()) { $id_or_email = get_comment($comment_ID); } if (is_object($id_or_email)) { if (sgk_is_topsy_comment($id_or_email)) { $alt = ''; if (preg_match("/^https?:\/\/(?:[-\w]+\.)?twitter\.com\/(\w{1,15})/", $id_or_email->comment_author_url, $match)) { $tweeter_username = $match[1]; } $default = 'http://img.tweetimag.es/i/' . $tweeter_username . '_n'; return "<img alt='{$alt}' src='{$default}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />"; } } return $avatar; } function sgk_is_topsy_comment($comment, $ret_ID=false) { if (substr($comment->comment_agent, 0, 5) == 'Topsy') { if ($ret_ID) { return $comment->comment_ID; } return true; } return false; } |
Como podemos observar se ha añadido el filtro de la función get_avatar mediante add_filter que ha dado como resultado knx_get_avatar (no es necesario que entiendad el parámetro de prioridad -10- y el de número de parámetros – 5). Con eso ya tendremos nuestros avatares directamente desde WordPress.
Moderar tweetbacks de Topsy
Cuando me refiero a un tweetback hago referencia a un trackback de Twitter, una reacción en Twitter de una URL de nuestro blog. Por defecto Topsy genera automáticamente todos los tweetbacks y los ingresa como comentarios, seas cuales fueran.
Si desean poder moderarlos manualmente (si tienes muchos posts y muchas reacciones puede ser tedioso) debemos realizar un sencillo cambio en el código. De paso añadiremos el clásico texto: “Este comentario fue originalmente publicado en Twitter” con el enlace al tweet para el texto en negrita.
Buscamos la línea 295 y cambiamos:
295 | 'comment_content' => $wpdb->escape("<span class=\"topsy_trackback_comment\"><span class=\"topsy_twitter_username\"><span class=\"topsy_trackback_content\">$tweet_text</span></span>"), |
Por esto:
295 296 | 'comment_approved' => '0', 'comment_content' => $wpdb->escape("$tweet_text <p><em>Este comentario fue originalmente publicado en <a href=\"$tweet_url\" rel=\"nofollow\">Twitter</a></em></p>"), |
Como pueden observar, se ha añadido en el arreglo el parámetro comment_approved dándole el valor de 0 (por defecto es 1, que significa aprobado). También hemos modificado el contenido del comentario añadiéndole un párrafo adicional donde hemos puesto el texto que habíamos indicado.
Para ahorrarles todo el trabajo en la edición, tengo un txt con el texto que deberán cambiar en el archivo topsy.php de la sección Plugins / Editor, lueg de haber seleccionado el plugin Topsy Retweet Button a editar. No olviden primero descargar el plugin original desde aquí.
Espero que les sirva tanto como a mi.
Descargar Topsy.php modificado
Etiquetas: redes sociales, Twitter, wordpress plugins
December 21st, 2010 at 3:50 am
Todavía sirve este plugin? leo que ya no es compatible con wordpress 3.0
December 21st, 2010 at 9:23 am
@Paco: Aquí todo de lo más normal. Yo estoy usando el plugin en su versión 1.2.7 y WordPress actualizado.
Saludos 😉
March 8th, 2011 at 11:59 am
muchas gracias por el informe amigo! Habia escuchado sobre Topsy, pero no sabia como funcionaba, yo creo que me conviene probarlo!
Gracias
Saludos
– Luisa
March 8th, 2011 at 3:48 pm
Mucha suerte, Luisa. Cualquier cosa, estamos por aquí para ayudar.
Saludos 😉
September 14th, 2012 at 1:03 pm
Hola KnxDT
Conoces alguna alternativa a tweetimag.es ?? Supongo que eres consciente de que esto dejó de funcionar hace unos meses 🙁 Usé tus tips y me fué perfecto hasta entonces. Ya no encuentro como mostrar los avatares de twitter en mis comentarios :/
Gracias de antemano. Saludos!
September 14th, 2012 at 5:58 pm
Estimado:
Daré unas vueltas por la web y espero encontrar alguna alternativa sobre la cual podamos meterle la mano al código 🙂
Saludos!