Integrar Flickr con WordPress

A veces, un plugin de WordPress no hace lo que necesitas y es el momento en el que tienes que integrar algunas funcionalidades si esa ayuda.
Principalmente es la integración con la galería de Flickr, bien sea para mostrarlas en HTML plano o para importarlo como XML para una funcionalidad Flash, es la que integro en mayor medida.
En este caso enlazo el canal RSS de Flickr con la función fetch_feed().
Primer paso, crear un fichero llamado link_with_flickr.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | class flickr { // Función que elimina la doble comilla que interfier en el HTML. function cleanup($s = null) { if (!$s) return false; else { return str_replace('"', '', $s); } } // Resolución de la fotografia. function photo($url, $size) { $url = explode('/', $url); $photo = array_pop($url); switch($size) { case 'square': $r = preg_replace('/(_(s|t|m|b))?\./i', '_s.', $photo); break; case 'thumb': $r = preg_replace('/(_(s|t|m|b))?\./i', '_t.', $photo); break; case 'small': $r = preg_replace('/(_(s|t|m|b))?\./i', '_m.', $photo); break; case 'large': $r = preg_replace('/(_(s|t|m|b))?\./i', '_b.', $photo); break; default: // Medium $r = preg_replace('/(_(s|t|m|b))?\./i', '.', $photo); break; } $url[] = $r; return implode('/', $url); } //Función que mira las descripciones y localiza la primera imagen. function find_photo($data) { preg_match_all('/<img src="([^"]*)"([^>]*)>/i', $data, $m); return $m[1][0]; } } |
Segundo paso, integración con el tema, bien sea incluyendo este código en index.php, sidebar.php, …
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | // Obtiene la dos datos desde el RSS include_once(ABSPATH . WPINC . '/feed.php'); include_once(TEMPLATEPATH . '/scripts/link_with_flickr.php'); $rss = fetch_feed('tu-enlace-con-feed-de-flickr'); $thumb = 'square'; $full = 'medium'; // Maximo de imagenes a mostrar, en este caso 10. $maxitems = $rss->get_item_quantity(10); // Cargar imagenes en el array, primer elemento es el 0. $rss_items = $rss->get_items(0, $maxitems); if ($maxitems == 0) //ToDo: Mostrar algo que indique al usuario que no tiene imagenes. else // Bucle que obtiene y muestra las imagenes del RSS. foreach ( $rss_items as $item ): $url = flickr::find_photo($item->get_description()); $title = flickr::cleanup($item->get_title()); $full_url = flickr::photo($url, $full); $thumb_url = flickr::photo($url, $thumb); //ToDo: Mostrar la Imagen en el contenedor deseado. endforeach; |
Y el tercer y último paso,s ería configurar un aserie de parámetros y opciones.
En el código anterior se debe cambiar tu-enlace-con-feed-de-flickr por la ruta de enlace con el RSS de Flickr. Esta ruta se encuentra en Photostream de tu cuenta Flirck, basta con copiar la ruta y pegarla en anterior código.
Para mostrar una cantidad u otra de imágenes de tu Photostream, solo será necesario cambiar en la función get_item_quantity el valor del parámetro.
Y en la secciones ToDo, cada desarrollador deberá asignar los datos a una imagen, a un visualizador flash, etc. etc.
Nota:
Uno de los recursos que utilizo para recordar la cantidad de funciones englobadas en WordPress, es WordPress Visual Cheay Sheet (pulsar aquí para descargar), diseñador por Anotonio Lupetti, es un documento englobado en una serie de ayudas que suele añadir y actualizar con cierta regularidad.


