Add a Custom RSS Feed in the WordPress Dashboard

Cómo agregar una fuente RSS personalizada en el panel de WordPress

Internet está lleno de recursos y es difícil verlo todo. Por supuesto, existe Twitter para estar al tanto de las tendencias, o software de lectura de RSS, pero estás como yo muy ocupado a veces es molesto tener 20 programas abiertos al mismo tiempo. Por eso decidí usar mi panel de WordPress como plataforma global para tener acceso rápido a estos feeds. Un ejemplo que quiero compartir hoy es cómo crear un metabox RSS personalizado en el panel de WordPress.

Aquí está el resultado final de lo que vamos a crear:

agregar-un-metabox-tablero-rss-personalizado

Paso 1: el complemento

Para agregar este metabox, necesitamos crear un complemento. Así que simplemente cree una nueva carpeta llamada “my-dashboard-metaboxes” en wp-content / plugins / y en la nueva carpeta cree un archivo llamado my-dashboard-metaboxes.php. Este archivo será el archivo de complemento principal. Ábrelo en tu editor principal. El siguiente código es el código que generará el complemento. Nada muy complejo aquí:

<?php
/*
Plugin Name: My Dashboard Metaboxes
Plugin URL: http://remicorson.com/
Description: Adds custom meta boxes on the main admin dashboard
Version: 0.1
Author: Remi Corson
Author URI: http://remicorson.com
Contributors: corsonr
Text Domain: rc_mdm
*/

Paso 2: registre el Metabox

Ahora que tenemos un complemento vacío (me refiero a un complemento que no hace nada), necesitamos registrar al menos un metabox para mostrarlo en el panel de WordPress. Para hacer esto, necesitamos crear una nueva función que conecte el “wp_dashboard_setup“cuelgue. Llamemos a esta función” rc_mdm_register_widgets () “. Dentro de esta función, necesitamos decirle a WordPress que queremos agregar un nuevo metabox, y ese es el propósito de”wp_add_dashboard_widget ()“una función. Esta función acepta 4 parámetros:

1 – $ widget_id (entero) (obligatorio) un slug de identificación para su widget. Esto se utilizará como su clase css y su clave en la matriz de widgets.
Predeterminado: ninguno

2 – $ nom_du_gadget (cadena) (obligatorio) este es el nombre que mostrará su widget en su encabezado.
Predeterminado: ninguno

3 – $ recordatorio (cadena) (obligatorio) El nombre de una función que está creando y que mostrará el contenido real de su widget.
Predeterminado: ninguno

4 – $ control_callback (cadena) (opcional) El nombre de una función que crea que manejará el envío de formularios de opciones de widget (configuración) y también mostrará elementos de formulario.

Lo importante aquí es el tercer parámetro, es el que define las funciones que se cargarán en el metabox. En este ejemplo, se llama “rc_mdm_create_my_rss_box ()”.

/**
 * Register all dashboard metaboxes
 *
 * @access      public
 * @since       1.0 
 * @return      void
*/

function rc_mdm_register_widgets() {
	global $wp_meta_boxes;
	
	wp_add_dashboard_widget('widget_freelanceswitch', __('My RSS Feeds', 'rc_mdm'), 'rc_mdm_create_my_rss_box');
}
add_action('wp_dashboard_setup', 'rc_mdm_register_widgets');

Paso 3: contenido de Metabox

Si activa el complemento y va a su panel de WordPress, debería ver un nuevo metabox vacío. Ahora necesitamos completar su contenido. Lo importante para esta función es incluir el archivo incorporado de WordPress “feed.php” para poder usar la función “fetch_feed ()”. Tenga en cuenta que estamos usando “fetch_feed ()” porque “fetch_rss ()”, “get_rss ()” y “wp_rss ()” están en desuso. Por una vez, he incluido todos los comentarios directamente en el código, pero me gustaría llamar su atención sobre algunas características interesantes que estoy usando en la función metabox.

En primer lugar, está el “fetch_feed ()“una función. Se utiliza para obtener y analizar el contenido de los feeds. Esta función utiliza la Clase SimplePie, para que puedas disfrutar de casi todas las funciones que se incluyen en él.

Luego tenemos la función “human_time_diff ()” que se usa para mostrar la hora en la forma “human_time_diff ()“, Por ejemplo, para mostrar algo como” hace 2 horas “,” hace 4 días “, etc., es una función de WordPress.

Y finalmente tenemos “wp_html_excerpt ()»Acortar el contenido de cada feed.

Todas las demás funciones son funciones de WordPress bien conocidas o están incluidas en la clase Simple Pie.

Aquí está el código:

/**
 * Creates the RSS metabox
 *
 * @access      public
 * @since       1.0 
 * @return      void
*/

function rc_mdm_create_my_rss_box() {
	
	// Get RSS Feed(s)
	include_once(ABSPATH . WPINC . '/feed.php');
	
	// My feeds list (add your own RSS feeds urls)
	$my_feeds = array( 
				'http://feeds.feedburner.com/FSAllJobs', 
				'http://www.wphired.com/feed/?post_type=job_listing' 
				);
	
	// Loop through Feeds
	foreach ( $my_feeds as $feed) :
	
		// Get a SimplePie feed object from the specified feed source.
		$rss = fetch_feed( $feed );
		if (!is_wp_error( $rss ) ) : // Checks that the object is created correctly 
		    // Figure out how many total items there are, and choose a limit 
		    $maxitems = $rss->get_item_quantity( 3 ); 
		
		    // Build an array of all the items, starting with element 0 (first element).
		    $rss_items = $rss->get_items( 0, $maxitems ); 
	
		    // Get RSS title
		    $rss_title = '<a href="'.$rss->get_permalink().'" target="_blank">'.strtoupper( $rss->get_title() ).'</a>'; 
		endif;
	
		// Display the container
		echo '<div class="rss-widget">';
		echo '<strong>'.$rss_title.'</strong>';
		echo '<hr style="border: 0; background-color: #DFDFDF; height: 1px;">';
		
		// Starts items listing within <ul> tag
		echo '<ul>';
		
		// Check items
		if ( $maxitems == 0 ) {
			echo '<li>'.__( 'No item', 'rc_mdm').'.</li>';
		} else {
			// Loop through each feed item and display each item as a hyperlink.
			foreach ( $rss_items as $item ) :
				// Uncomment line below to display non human date
				//$item_date = $item->get_date( get_option('date_format').' @ '.get_option('time_format') );
				
				// Get human date (comment if you want to use non human date)
				$item_date = human_time_diff( $item->get_date('U'), current_time('timestamp')).' '.__( 'ago', 'rc_mdm' );
				
				// Start displaying item content within a <li> tag
				echo '<li>';
				// create item link
				echo '<a href="'.esc_url( $item->get_permalink() ).'" title="'.$item_date.'">';
				// Get item title
				echo esc_html( $item->get_title() );
				echo '</a>';
				// Display date
				echo ' <span class="rss-date">'.$item_date.'</span><br />';
				// Get item content
				$content = $item->get_content();
				// Shorten content
				$content = wp_html_excerpt($content, 120) . ' [...]';
				// Display content
				echo $content;
				// End <li> tag
				echo '</li>';
			endforeach;
		}
		// End <ul> tag
		echo '</ul></div>';

	endforeach; // End foreach feed
}

En la línea 15 hay una tabla donde puedes poner tantos streams como quieras. También puede configurar el número de cada elemento de la fuente para que se muestre en la línea 27. Por último, en las líneas 50 y 54, puede elegir mostrar una fecha humana o una fecha normal. Es suyo.

Conclusión

Bien, hemos creado un metabox simple, pero ahora tienes lo básico para crear tus propios metaboxes con tu propio contenido. También puede eliminar los metaboxes predeterminados de WordPress y tener una comprensión completa de los API de widgets de panel, Te animo, como siempre, a que eches un vistazo a la manuscrito.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ir arriba