Attachment WordPress (3). La lista

Plugin WordPress. Seguridad en el código

Los Attachment WordPress son los elementos multimedia que disponemos en nuestra librería de medios de WordPress para utilizar en nuestro sitio web.

Ya hemos visto cómo recorrer todo el directorio ‘uploads’ y sus múltiples niveles de sub-directorios. Ahora vamos a ver cómo recoger toda la lista de attachments que tenemos.

Pero antes, vamos a seguir perfilando la idea del plugin en general.

 

Desarrollo de la idea

Para empezar, en el artículo anterior nos quedamos con el siguiente esquema de relaciones:

Attachments <–> Registros del sistema <–> Archivos

Para crear nuestro pseudo-sistema operativo, vamos a añadir a nuestro plugin wordpress las taxonomías. Para empezar, las taxonomías nos van a permitir clasificar los attachments de nuestra biblioteca de medios.

De esta manera, por muchos attachments que tengamos en nuestra biblioteca de medios, nos será más fácil gestionarlos si los tenemos clasificados por taxonomías. El desempeño de la taxonomía en este plugin sería como un elemento para clasificar por categorías (en un principio).

Por lo tanto, vamos a ampliar el esquema de relaciones de nuestro plugin.

Taxonomías <–> Attachments <–> Registros del sistema <–> Archivos

Codificación. Consultas sobre los attachment wordpress

Para empezar, vamos a ver cómo conseguir la lista de los attachments que disponemos en nuestra biblioteca de medios.

Para ello, disponemos de 4 métodos, 3 de los cuales son tratados en este artículo:

  • query_posts(). Lo que hace es modificar la consulta principal de una página, reemplazándola por una nueva instancia de la consulta. En algunas circunstancias, no es el método correcto.
  • get_posts(). Es muy similar en su utilización y acepta los mismos argumentos (con matices), pero devuelve una matriz de posts, no modifica las variables globales y su uso es seguro en cualquier lugar.
  • La clase WP_Query permite crear y trabajar con un objeto propio. Un poco más complejo, con menos restricciones, y su uso es seguro en cualquier lugar.
  • El último método sería la consulta directa, mediante la clase wpdb.
Funciones query para listar los attachment wordpress
Funciones query para listar los attachment wordpress

Para simplificar y evitar posibles conflictos, vamos a emplear el segundo método.

Después de todo, aquí tenemos una muestra del resultado:

Así que ya veremos en próximos artículos cómo vamos a integrar estos datos de los attachment wordpress en nuestro plugin, y cómo trabajaremos con ellos. De momento, lo dejamos aquí.

 

Fichero de ejemplo

Primeramente, como ya sabéis, podréis encontrar el fichero en el grupo de Facebook que administro, ‘WordPress en Español’. También lo tenéis disponible en mi cuenta de GitHub.

 

Conclusión y próximo artículo

En resumen, hemos visto cómo recopilar la lista de los attachments. También vimos en el anterior artículo cómo leer todos los directorios y archivos de ‘uploads’. Así que ahora nos faltan dos tipos de datos: los metadatos de los attachments, y las diferentes medidas que tiene establecidas WordPress.

 

Contributors

Actualmente hay dos nombres en la lista de contributors del futuro plugin: miguelthepoohsergiotoca.

Sin embargo, estoy convencido que dicha lista se alargará. Así que os animo a que contribuyáis a llevar a buen puerto esta empresa.

 

Preguntas, retos y previos

En primer lugar, ¿qué datos de los attachments creéis que serán de utilidad y por qué para nuestro plugin?

También, ¿conocéis las mejores funciones de WordPress para conseguir estos datos?

Finalmente, cualquier otro comentario, sugerencia o crítica constructiva será aceptada. Que paséis una buena semana.

 

Plugin WordPress. 1. Hagámoslo entre todos

Plugin WordPress. Seguridad en el código

Plugin WordPress. Hagámoslo entre todos

Comienza aquí una nueva serie de artículos en la que vamos a desarrollar un nuevo plugin WordPress.

Pero esta vez no va a ser de la forma tradicional yo escribo / tú lees. Esta vez quiero que todo el mundo participe. Es decir, va a ser una serie de artículos abierta a los comentarios de todo el mundo.

¿Porqué? Pues porque creo que las pretensiones de este plugin son muy altas, su objetivo muy elevado, porque no soy programador, y en esto de WordPress aún no llevo ni un año metido.

Por tanto, cualquiera que tenga mejores conocimientos que yo en algún punto de los que vamos a tratar, que van a ser bastantes, le pido encarecidamente que colabore. E incluso quien tenga cualquier idea, sugerencia, comentario o incluso crítica (constructiva, por supuesto).

Vamos a desarrollar el plugin desde 0, hasta el punto de subirlo al repositorio oficial de wordpress.org.

Para hacerlo más participativo, quien realice algún aporte, entrará en los créditos del plugin y aparecerá como ‘wordpress developer’. Además, con cada artículo, colgaré en el grupo de facebook que administro, ‘WordPress en Español’, los archivos con el código resultante, para que todo el mundo los pueda leer, descargar, e incluso compartir en otros grupos (cuantos más seamos, más reiremos). También estarán disponibles en mi cuenta de GitHub. Si encontráis enlaces a artículos referidos, también son bienvenidos.

 

Plugin WordPress. La idea

¿Qué va a hacer este plugin? Este plugin va a crear un pseudo-sistema operativo en el directorio ‘uploads’ de WordPress.

Cada vez que subimos un archivo a nuestra biblioteca de medios de WordPress, el CMS crea tantas copias como formatos de imagen ‘thumbnail’ tengamos definidos, generalmente 3. Ahora bien, en algunos casos, como por ejemplo si tenéis instalado WooCommerce, los plugins pueden incrementar este número de copias. Además, si cambiáis de theme, seguramente también aportarán, nuevos formatos. Con esto, vemos que la cantidad de copias que se pueden generar de nuestras imágenes en el directorio ‘uploads’ puede ser enorme. Y lo peor de todo es que los archivos en desuso no se eliminan.

Por otro lado, sabéis que WordPress guarda los archivos de imagen en un único directorio ‘uploads’ o bien en diferentes subdirectorios por fechas de subida. Habría que buscar una manera de poder ver los archivos por ‘temas’. A partir de aquí ya animo a todo el mundo a que participe con sus propias ideas.

Por tanto, para sitios web que contengan muchas imágenes, y en los que se haya ‘trasteado’ mucho con plugins y themes, el número de archivos puede ser mayúsculo.

 

Plugin WordPress. El origen, el culpable y el nombre

¿Cómo se me ocurrió este plugin? No fue a mi. La idea fue de Miguel Pujante (Miguel, te desgastaré el apellido, tú me diste permiso). Como Miguel es amigo del código abierto, he pensado que esta forma de desarrollo sería un pequeño homenaje hacia él.

Pero no sólo va a ser la forma de hacerlo, sino el nombre del plugin en fase de desarrollo. Todos mis plugins en fase de desarrollo llevan mis tres iniciales más el nombre de la persona que me dio la idea. El plugin STM Gallery tiene ese nombre comercial aunque lo desarrollo como stmpili, ya que es el nombre de la chica que me dio la idea.

Por tanto, el plugin en fase de desarrollo se llamará stmpujante, y así se llamarán las diferentes funciones y variables principales. De esta forma, nos aseguramos que no entraremos en conflicto de nombres con otros plugins o el mismo ‘core’ de WordPress.

 

Plugin WordPress. Las técnicas

En el próximo artículo desarrollaremos más en profundidad la idea, por lo que es probable que aparezcan más técnicas necesarias para desarrollar este plugin WordPress. Sin embargo, desde ahora, os aseguro que vamos a necesitar:

  • Lectura de directorios en PHP.
  • Lectura de registros de WordPress.
  • Manejo de taxonomías.
  • Utilización de llamadas asíncronas AJAX.
  • Gestión de formularios en la administración del back-end.
  • Creación de campos select en la biblioteca de medios de WordPress.
  • Internacionalización de un plugin.
  • Seguridad en el código.
  • wordpress.org. Subida de un plugin al repositorio oficial.

Como podéis ver, es muy amplio el abanico de técnicas que utilizaremos. Es por ello que servirá para ampliar conocimientos, y dónde os pido colaboración, tanto en las ideas, como en los conocimientos técnicos que tengáis.

 

La serie de artículos

Esta serie tendrá un artículo, como mínimo, para cada una de las técnicas relacionadas más arriba. Por tanto, calculo de 12 a 16, si no más, artículos hasta la finalización definitiva del plugin.

Esta serie no va a ser mi dedicación principal este tiempo, ya que estoy desarrollando otros temas. Por ello, y para que todo el mundo asimile y colabore, la publicación de los artículos será semanal. Por tanto, la duración prevista es de alrededor de 4 meses.

 

Conclusión

En fin, ya he lanzado el órdago y la creación del plugin. De momento, para que vayáis mirando algún tema (y para mejorar mi SEO), os paso un par de enlaces relacionados:

Hasta la semana que viene. Espero vuestros comentarios.