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.

Tags: ,

2 Responses to “Integrar Flickr con WordPress”

  1. Fliberty 06/11/2013 at 01:46 #

    Amigo, me tira un error de codigo al momento de insertar la funcion en una plantilla de página, especificamente:

    if ($maxitems == 0)
    //ToDo: Mostrar algo que indique al usuario que no tiene imagenes.
    else

    La linea con else.

    Espero me puedas ayudar.

    • Jose María Flores Zazo 09/11/2013 at 10:39 #

      Del ejemplo anterior, ¿en qué linea exacta te da el error?

      También es posible que esto ya no funcione igual, es un algoritmo para la versión anterior a la actual de flickr.

Deja un comentario