Convierte tu fuente RSS en un shortcode

Estás leyendo la publicación: Convierte tu fuente RSS en un shortcode

La semana pasada escribí cómo “Usar WordPress para imprimir un feed RSS para los asistentes de Eventbrite”. Era bastante popular, pero luego me encontré en un lugar que era más molesto. Tratando de incorporar eso en una publicación de blog o página.

Sin tener que descargar un complemento que permita ejecutar PHP dentro de una publicación, tendría que crear un archivo de plantilla y usarlo. Que es lo que hice, y funciona muy bien. ¡Pero por alguna razón me olvidé de los shortcodes! Con un shortcode, podría generar todo el PHP en el archivo de funciones y luego simplemente llamar al shortcode cuando/donde quiera.

Bien, ahora mostremos el código PHP completo:

función attendee_feed_print_2009() { global $wpdb; include_once( ABSPATH . WPINC . ‘/rss.php’ ); $rss = fetch_rss( ‘http://www.eventbrite.com/rss/event_list_attendees/384870157’ ); $elementos = array_slice( $rss->elementos, 0 ); if (vacío ($elementos)) echo ‘

  • Sin elementos

‘; else foreach ($elementos como $elemento): ?>



Ahora, este código debe cambiarse para que funcione como un código abreviado. Tendremos que devolver la función y no imprimirla/hacer eco.

También quería poder usar múltiples instancias del código con diferentes fuentes. Para hacerlo, tuve que crear un argumento para extraer del código corto completo. Encontré una demostración en: la publicación de Alex Mansfield.

Recuerda esto:

función attendee_feed_print_2009() { global $wpdb; include_once( ABSPATH . WPINC . ‘/rss.php’ ); $rss = fetch_rss( ‘http://www.eventbrite.com/rss/event_list_attendees/384870157’ );

Vamos a actualizarlo para que diga lo siguiente (cambios en negrita):

función attendee_feed_print_2009( $rss_nbr ) { global $wpdb;
extract( shortcode_atts( array( ‘rss’ => ”), $rss_nbr ) );
include_once( ABSPATH . WPINC . ‘/rss.php’ ); $rss = buscar_rss( $rss );

Y el código final con los campos actualizados para devolver los argumentos (poner en su archivo functions.php (entre )):

función attendee_feed_print_2009( $rss_nbr ) { global $wpdb; extract( shortcode_atts( array( ‘rss’ => ”), $rss_nbr ) ); include_once( ABSPATH . WPINC . ‘/rss.php’ ); $rss = buscar_rss( $rss ); $elementos = array_slice( $rss->elementos, 0 ); $rss_html=”

“; if ( empty( $items ) ) $rss_html .= ‘

  • Todavía no hay asistentes.

‘; else foreach ($elementos como $elemento): $rss_html .= ‘

    ‘; $rss_html .= ‘

  • ‘; $rss_html .= $elemento[ ‘content’ ][ ‘encoded’ ]; $rss_html .= ‘

    ‘; $rss_html .= ‘
  • ‘; $rss_html .= ‘

‘; endforeach; $rss_html .= ‘

‘; devolver $rss_html; }

¡Y no olvidemos agregar la función shortcode!

add_shortcode(‘eventbrite-asistentes’, ‘asistente_feed_print_2009’);

Resultado final con aspecto como este `[eventbrite-attendees rss=”http://your-rss-feed.com/”]`

Me gusta Cargando…

🔥 Recomendado:  Venom Foundation y Hub71 se asocian para acelerar el crecimiento y la adopción de tecnologías Blockchain de Abu Dhabi