Widget de tendencias de Twitter para WordPress

En este tutorial vamos a crear un widget de WordPress que muestra las tendencias de Twitter por región. Utilizaremos la API de tendencias de Twitter y actualizaremos las tendencias después de un tiempo específico utilizando la API de transitorios de WordPress.


Twitter Trends API & WOEID

Tendencias de Twitter: Las tendencias de Twitter ofrecen una descripción general de lo que millones de usuarios de Twitter hablan más en un momento específico en Twitter, lo que le dará una idea de lo que está sucediendo en todo el mundo..

Twitter proporciona una API de tendencias, OBTENER tendencias /: woeid, que es una API RESTful que devuelve resultados en formato JSON o XML. Puede analizar fácilmente el resultado de la solicitud de API y visualizarlo.

Twitter está utilizando las ID de Where On Earth (WOEID) de Yahoo para identificar las ubicaciones para las que tiene datos de tendencias..

Entonces, ¿qué es WOEID (DONDE EN LOS IDENTIFICADORES DE TIERRA)? ?
WOEID es un identificador de referencia único asignado por los WOEID de Yahoo! Para identificar cualquier lugar en la Tierra.


Widgets de WordPress

Los widgets de WordPress son complementos de WordPress que se pueden agregar fácilmente a las regiones de su tema de WordPress como la barra lateral, el pie de página, etc. Las áreas del widget de WordPress. Desde el panel de control, los administradores pueden agregar, reorganizar, eliminar y actualizar fácilmente los parámetros de los widgets. Usar widgets de WordPress es muy, muy fácil para los propietarios de blogs no técnicos.

El uso de widgets WorPress no requiere ninguna experiencia de codificación. Se pueden agregar, eliminar y reorganizar fácilmente en el panel "Apariencia -> Widgets" de la administración de WordPress con solo arrastrar y soltar.

Antes de comenzar, asumo que usted tiene un conocimiento general de la API de Widgets de WordPress. En este tutorial vamos a utilizar WordPress Widget Boilerplate de Paulund.


Creación del widget de tendencias de Twitter

Vamos a crear un widget de WordPress que le permite obtener las tendencias de Twitter por región y mostrarlas en su blog / sitio web de WordPress..

El widget de tendencias de Twitter le brinda a los visitantes de su blog o sitio web una descripción general de lo que millones de personas en Twitter hablan más en este momento, en función de una ubicación específica. Este widget le dará una idea de lo que está sucediendo en todo el mundo en este momento..

Creación del Widget Constructor

Registrar el 'TwitterTrendsWidget'widget en el widget_init acción.

 / * Nombre del complemento: WP Twitter Trends URI del complemento: http://geekslabs.com/wp-twitter-trends Descripción: Un widget para mostrar las tendencias de Twitter por región. Versión: 1.0 Autor: Ajay Patel Autor URI: http://ajayy.com * / / ** * Registrar el widget * / add_action ('widgets_init', 'TwitterTrendsWidgetInit'); la función TwitterTrendsWidgetInit () register_widget ('TwitterTrendsWidget'); 

los register_widget la función llamará al TwitterTrendsWidget Clase que crearemos en el siguiente paso..

 / ** * Agrega el widget de TwitterTrendsWidget. * / class TwitterTrendsWidget extiende WP_Widget function TwitterTrendsWidget () parent :: WP_Widget (false, $ region = 'Twitter Trends Widget');  / ** * Registrar widget con WordPress. * / función pública __construct () parent :: __ construct ('twittertrendswidget', // ID base 'TwitterTrendsWidget', // Nombre array ('classname' => 'TwitterTrendsWidget', 'description' => __ ('Un widget para mostrar las tendencias de twitter por región. ',' tfwidget '),) // Args);  // Fin constructor

Creación de la función de widget

La función Widget le ayuda a mostrar su widget en el front-end. Se llama a esta función para devolver la salida del widget y mostrarlo en el área de visualización del widget (por ejemplo, barra lateral, pie de página).

Como puede ver, estamos recolectando todos los campos requeridos del $ instancia matriz como título, región, y vencimiento para mostrar el widget en el sitio web con el estilo adecuado.

Utilice la siguiente función para mostrar nuestro widget de tendencias de Twitter.

 / ** * Front-end de visualización del widget. * * @ver WP_Widget :: widget () * * @param array $ args Argumentos del widget. * @param array $ instance Valores guardados de la API transitoria de WordPress. * / widget de funciones ($ args, $ instance) extracto ($ args); $ title = apply_filters ('widget_title', $ instance ['title']); $ region = apply_filters ('widget_region', $ instance ['region']); // Región seleccionada (por ejemplo, India) $ expiration = apply_filters ('widget_expiration', $ instance ['expiration']); // Tiempo de captura $ display = apply_filters ('widget_display', $ instance ['display']); // No hay tendencias para mostrar echo $ before_widget; if ($ title) echo $ before_title. $ título. $ after_title; ?> 
'; para ($ i = 0; $ i < $display; $i++) echo '
  • '. $ trends [0] [' trends '] [$ i] [' name '].'
  • '; // Mostrar tendencias de Twitter echo ''; ?>

    En este widget de tendencias de Twitter usaremos las siguientes variables:

    • $ titulo - El título de nuestro widget (campo de cuadro de texto)
    • $ región - Para seleccionar la región, la lista desplegable de la región predeterminada con el valor GEOID, por ejemplo, India: 23424848 (campo desplegable)
    • $ vencimiento - Actualice las tendencias utilizando la API de WordPress Transients. p.ej. por hora, diario (campo desplegable)
    • $ pantalla - Número de tendencias a mostrar (campo de cuadro de texto)

    Estableceremos los valores de estas variables usando WordPress. $ instancia variable.

    En el código anterior estamos usando el twitter_trends () función. No tiene que preocuparse por eso ahora, lo explicaré en el siguiente paso..

    En la funcion twitter_trends () estamos pasando $ región y $ vencimiento variables y devolverá una serie de tendencias de Twitter por región. Asignar eso a la $ tendencias variable.

    A continuación, muestre las tendencias usando un bucle for con un límite de mostrar tendencias usando el $ pantalla variable.

    Usando la API de Transients de WordPress.

    La API de transitorios de WordPress le permite almacenar datos almacenados en caché en la base de datos temporalmente, dándole un nombre personalizado y un período de tiempo después del cual caducará y se eliminará automáticamente..

    Para obtener más información sobre la API de transitorios de WordPress, puede consultar nuestra serie de tutoriales de la API de transitorios de WordPress.

     / ** * Usando WordPress Transient API * * @see Transients API: http://codex.wordpress.org/Transients_API * * @param array $ count guardado las tendencias de Twitter por valores de región de la Twitter Trends API. * / function twitter_trends ($ region, $ expiration) $ count = get_transient ('twitter_trends'); if ($ count! == false) return $ count; $ cuenta = 0; $ url = 'https://api.twitter.com/1/trends/'.$region.'.json?count=50'; $ dataOrig = file_get_contents ($ url, true); // obtener el contenido del archivo if (is_wp_error ($ dataOrig)) devolver 'Error al obtener datos de la API de Twitter!';  else $ count = json_decode ($ dataOrig, true); // obteniendo el contenido del archivo como matriz set_transient ('twitter_trends', $ count, 60 * 60 * $ expiration); // establecer cache return $ count; 

    Como les dije antes, estamos pasando dos variables. $ región y $ vencimiento en esta función.

    Ahora, usando Twitter Trends Trends GET trends /: woeid. Supongamos que nuestra variable $ región tiene un valor de "23424848". Tratemos de obtener las tendencias actuales de Twitter para la India.

     https://api.twitter.com/1/trends/23424848.json?count=50

    Simplemente pega esta URL en tu navegador. Verá la respuesta de las tendencias en formato JSON. Utilizando la file_get_contents () lee un archivo en una cadena. Si no hay ningún error en la respuesta entonces usando json_decode () obtiene una cadena codificada JSON y la convierte en una variable de objeto PHP $ cuenta.

    Ahora actualiza la variable tendencias de Twitter

     set_transient ('twitter_trends', $ count, 60 * 60 * $ expiration); // establecer caché

    Creación de la función de actualización de widgets

    La función de actualización del widget de WordPress se usa para actualizar nuestras variables de formulario de widget a la base de datos mediante el envío de un formulario de administración de widget.

     / ** * Sanitize los valores del formulario del widget a medida que se guardan. * * @ver WP_Widget :: update () * * @param array $ new_instance Valores recién enviados para guardar. * @param array $ old_instance Valores guardados previamente de la base de datos. * * @return array Se guardaron los valores seguros actualizados. * / update de funciones ($ new_instance, $ old_instance) $ instance = array (); $ instance ['title'] = strip_tags ($ new_instance ['title']); $ instance ['region'] = strip_tags ($ new_instance ['region']); $ instance ['expiration'] = strip_tags ($ new_instance ['expiration']); $ instance ['display'] = strip_tags ($ new_instance ['display']); delete_transient ('twitter_trends'); return $ instance; 

    Las opciones de widgets se almacenaron en una variable de matriz que fue llamada $ instancia. La función de actualización toma dos parámetros, $ nueva_instancia y $ old_instance. $ old_instance que contiene todos los valores de opción que ya se guardaron antes, y $ nueva_instancia que contiene todos los valores de las opciones que acabamos de actualizar a través del formulario de administración del widget.

    Esta función establece cada valor de instancia anterior en la matriz igual al valor apropiado en la nueva instancia.

    Creación de la función de formulario de widget

    La función de formulario de widget se utiliza para crear el formulario de widget en el panel para almacenar o actualizar las variables de widget. Crear un formulario de widget es muy simple, generará un formulario HTML con un campo para nuestras opciones.

     / ** * Forma de widget de back-end. * * @ver WP_Widget :: form () * * @param array $ instance Valores guardados previamente de la base de datos. * / function form ($ instance) $ title = esc_attr ($ instance ['title']); $ region = esc_attr ($ instance ['region']); $ expiration = esc_attr ($ instance ['expiration']); $ display = esc_attr ($ instance ['display']); ?> 

    En esta función puedes ver el $ instancia parámetro, que permite a nuestro formulario HTML leer las opciones de widget guardadas.


    Juntándolo: El Código Completo

    Puede ver el código completo en el complemento de tendencias de Twitter de WP en el directorio del complemento de WordPress.org, o descargarlo desde el enlace en la parte superior de este artículo..


    Conclusión

    ¡Y aquí hemos desarrollado con éxito un widget de tendencias de Twitter de WP! Puede descargar el código fuente y cambiar el diseño del widget front-end agregando nuevos estilos CSS. También puede crear un widget con pestañas para separar los temas de tendencias más recientes y los hashtags. Ahora tienes un widget de tendencias en tu sitio o blog..

    .