Anteriormente escribimos sobre un código que te permite mostrar el recuento de seguidores de Twitter, que fue aportado por Rarst. En este artículo, compartiremos un código más avanzado y elegante que te permite mostrar el recuento de seguidores de Twitter en WordPress. Una vez más, este script también fue aportado por Rarst.
Características
Esta función no se limita al recuento de seguidores. Puede obtener cualquier valor no anidado devuelto por el método API de Twitter users/show.
Tiene dos niveles de caché:
- los valores consultados se almacenan como un array en la base de datos, usando las opciones de WP, durante $interval segundos;
- las respuestas de la API se almacenan en memoria para que puedas consultar cualquier número de campos, sin generar múltiples solicitudes a la API.
Esto debería ser seguro de usar para múltiples valores y múltiples usuarios al mismo tiempo, sin preocuparse por agotar el límite de la API.
Tutorial
Primero abre el archivo functions.php de tu tema y agrega el siguiente código:
function rarst_twitter_user( $username, $field, $display = false ) {
$interval = 3600;
$cache = get_option('rarst_twitter_user');
$url = 'http://api.twitter.com/1/users/show.json?screen_name='.urlencode($username);
if ( false == $cache )
$cache = array();
// if first time request add placeholder and force update
if ( !isset( $cache[$username][$field] ) ) {
$cache[$username][$field] = NULL;
$cache[$username]['lastcheck'] = 0;
}
// if outdated
if( $cache[$username]['lastcheck'] < (time()-$interval) ) {
// holds decoded JSON data in memory
static $memorycache;
if ( isset($memorycache[$username]) ) {
$data = $memorycache[$username];
}
else {
$result = wp_remote_retrieve_body(wp_remote_request($url));
$data = json_decode( $result );
if ( is_object($data) )
$memorycache[$username] = $data;
}
if ( is_object($data) ) {
// update all fields, known to be requested
foreach ($cache[$username] as $key => $value)
if( isset($data->$key) )
$cache[$username][$key] = $data->$key;
$cache[$username]['lastcheck'] = time();
}
else {
$cache[$username]['lastcheck'] = time()+60;
}
update_option( 'rarst_twitter_user', $cache );
}
if ( false != $display )
echo $cache[$username][$field];
return $cache[$username][$field];
}
Uso
Una vez que hayas pegado la función, ahora puedes usar el código en cualquier archivo de plantilla de WordPress que desees. Simplemente pega el siguiente código:
echo rarst_twitter_user('wpbeginner', 'name').' has '.
rarst_twitter_user('wpbeginner', 'followers_count').' followers after '.
rarst_twitter_user('wpbeginner', 'statuses_count').' updates.';
El código anterior mostrará algo como esto:
WPBeginner tiene 5846 seguidores después de 1300 actualizaciones.
Fuente: Rarst


Aleks
Alguien que me explique dónde pongo mi nombre de usuario de Twitter, por favor. Es que de verdad no veo dónde... Y tampoco consigo que funcione... Pase lo que pase... Simplemente no me da el nombre de usuario, ni siquiera dejándolo completamente básico como está ahora mismo, no obtengo ninguna respuesta en cuanto al nombre de usuario... solo muestra: "tiene seguidores después de las actualizaciones"...
Eso es todo... nada más...
wpbeginner
En la sección de uso, reemplaza “wpbeginner” con tu nombre de Twitter.
Downhill_MC
este es un gran código. Me pregunto si hay alguna posibilidad de crear una función para incrustar en texto (algo como ). downhill_mc
Sandeep
¿podrías decirme cómo debo agregar estos códigos en mi imagen personalizada de Twitter como nos muestras en tu ejemplo?
Personal editorial
Tendrías que usar CSS... desafortunadamente no estamos escribiendo tutoriales sobre eso en este sitio.
Administrador
Ozh
(Deberías mostrar código resaltado por sintaxis y formateado limpiamente, de verdad)
Rarst
Acabo de notar que perdiste el + entre time() y 60
Personal editorial
Gracias por la corrección. Realmente apreciamos que proporciones los fragmentos geniales para que todos los usen. Tu arduo trabajo es muy apreciado.
Administrador
Angelo Beltrán
¡Genial! Me gusta su flexibilidad. ¡Saludos!
Rarst
Glad you found it useful.
Old snippet still works but it got kinda outdated and spread around a lot – it was getting hard to answer questions and correct outdated parts all the time.
Este es un poco más voluminoso, pero tiene una funcionalidad mucho más extendida para mostrar más datos y para diferentes nombres de usuario al mismo tiempo.
También tengo la intención de mantenerlo de manera más adecuada, por lo que los comentarios y sugerencias son bienvenidos en su página en mi blog.