Agregar Twitter @AnyWhere a los comentarios de WordPress
Siguiendo el tutorial sobre “How to Integrate Twitters @Anywhere with your WordPress Comments” pude integrar Twitter @AnyWhere en los comentarios de mi blog wordpress. El tutorial no es tan sencillo, pero como no encontré ningún plugin que lo haga de forma automática vamos a verlo de a poco.
Utilizar la API de Twitter
Lo primero que hay que hacer es registrarse para utilizar la API de Twitter. Esto es necesario para utilizar Twitter @AnyWhere.
Agregar el campo de Twitter al formulario de comentarios
Lo primero es agregar el campo en el formulario de comentarios para que tus visitantes puedan ingresar su nombre de usuario de Twitter. Desde el editor del tema vamos al archivo comments.php y buscamos donde se agregan los campos del formulario y le agregamos los siguientes:
1 2 3 4 |
<p>
<input type="text" name="twitter_username" id="twitter_username" class="text" value="<?php echo bm_getCurrentTwitterUser(); ?>" size="22" tabindex="4" />
<label for="twitter_username"><?php _e('Twitter Username', BM_THEMENAME); ?></label>
</p>
|
Recordar el nombre de usuario de Twitter
Se va a guardar el nombre de usuario de Twitter en una cookie que será salvado más adelante. Esto sirve para que los usuarios que recurrentes no tengan que completar el campo campo cada vez que quieran comentar algo, de esta forma queda consistente con los demás campos del formulario. En el archivo functions.php debemos agregar la siguiente función:
1 2 3 4 5 6 7 8 9 10 11 |
function bm_getCurrentTwitterUser () {
$comment_twitterUser = '';
if (isset($_COOKIE['comment_twitteruser_' . COOKIEHASH])) {
$comment_twitterUser = $_COOKIE['comment_twitteruser_' . COOKIEHASH];
$comment_twitterUser = stripslashes ($comment_twitterUser);
$comment_twitterUser = esc_attr ($comment_twitterUser);
}
return $comment_twitterUser;
}
|
Agregar el nombre de usuario de Twitter para los usuarios registrados
De esta forma los usuarios registrados podrán agregar su nombre de usuario de Twitter desde su perfil, así este valor se agregara automáticamente en los comentarios que estos usuarios dejen. Nuevamente en el archivo functions.php agregamos estas funciones:
1 2 3 4 5 6 |
function my_new_contactmethods( $contactmethods ) {
$contactmethods['twitter'] = 'Twitter';
return $contactmethods;
}
add_filter('user_contactmethods','my_new_contactmethods',10,1);
|
Guardando el nombre de usuario de Twitter en los comentarios
Para los usuarios que no están registrados en el blog debemos guardar este valor en cada comentario. Para esto en el archivo functions.php debemos agregar el siguiente código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
function bm_saveTwitterUser ($post_id) {
global $user;
// only save the twitter details for users who are not logged in
if (!is_user_logged_in()) {
// if an account name is specified
if (isset($_POST['twitter_username'])) {
// save cooke for...
$comment_cookie_lifetime = apply_filters('comment_cookie_lifetime', 30000000);
// sanitize username
$twitter_user = esc_html ($_POST['twitter_username']);
$twitter_user = str_replace('http://twitter.com/', '', $twitter_user);
// save cookie to use in comment form
setcookie('comment_twitteruser_' . COOKIEHASH, $twitter_user, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN);
// save name to db
add_comment_meta ($post_id, 'twitter_user', $twitter_user, true);
}
}
}
add_action ('comment_post', 'bm_saveTwitterUser');
|
Mostrar el nombre de usuario de Twitter en los comentarios
En esta parte es donde más pueden utilizar la imaginación para mostrar el nombre de usuario de Twitter, yo lo coloque seguido al nombre de quien comenta, pero lo pueden colocar en cualquier parte del comentario. El código se debe colocar en el archivo comments.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php
$twittername = '';
$commentAuthorUrl = get_comment_author_url();
if ($comment->user_id > 0) {
$auth = get_userdata ($comment->user_id);
}
if (isset($auth->twitter)) {
$twittername = $auth->twitter;
} else {
$twitter_user_array = get_comment_meta (get_comment_ID(), 'twitter_user');
if ($twitter_user_array[0]) {
$twittername = $twitter_user_array[0];
}
}
if ($twittername != '') {
?>
(<a class="twitter_anywhere" href="http://twitter.com/<?php echo $twittername; ?>">@<?php echo $twittername; ?></a>)
<?php
}
?>
|
Agregar el Javascript para mostrar la tarjeta de Twitter @AnyWhere
El código Javascript es el encargado de armar la tarjeta de Twitter @AnyWhere en los comentarios de WordPress. Se puede colocar en el archivo header.php dentro de las etiquetas head o hay quienes recomiendan colocarlo en el footer.php antes de cerrar la etiqueta body para que no interfiera con la carga de la página.
1 2 3 4 5 6 7 8 9 |
<script src="http://platform.twitter.com/anywhere.js?id=YOUR_API_KEY&v=1"></script>
<script type="text/javascript">
twttr.anywhere(function(twitter) {
twitter('.commentlist').linkifyUsers();
twitter('.twitter_anywhere').hovercards({
infer: true
});
});
</script>
|
Es necesario sustituir “YOUR_API_KEY” en el javascript por la clave que nos dieron al registrar la aplicación.