Source: https://sergiotoca.com/juntar-todos-los-datos-de-nuestro-plugin/
Timestamp: 2020-03-29 13:03:29+00:00

Document:
Juntar todos los datos (7) de nuestro plugin – Sergio TOCA MORENO
Publicado el febrero 20, 2017 por Sergio TOCA
Miguel, ya te respondí a tu comentario en el anterior post, que estuvieras tranquilo si no acababas de entender el código en él expuesto. Con el resultado de la UI del front-end que en este artículo y el plugin correspondiente se genera, entiendo que por fin comprenderás cuál es el camino que he tomado. Verás que estamos dotando al back-end (definitivamente) de una buena herramienta para gestionar los attachments, los registros (sizes) del sistema y los archivos del directorio ‘uploads‘
1 Estructura de este artículo
2 Empecemos. Todos los datos de un attachment
2.1 Datos principales de un attachment
2.2 Formatos del sistema y del attachment, y archivos de ‘uploads’
2.3 Campos editables de un attachment
2.4 Los datos avanzados
6 Preguntas, previos y retos
Estructura de este artículo
Este artículo no se va a estructurar como los demás, con un desarrollo de idea y una codificación, más o menos independientes una de otra. Por lo contrario, vamos a ver fotos de la pantalla resultante, explicando cómo he realizado cada cosa y luego una breve explicación del código, pero sin entrar en profundidad.
Para estudiar mejor el código, más adelante recordaré las vías habituales para su descarga, así como las instrucciones para su ejecución.
Empecemos. Todos los datos de un attachment
Vamos a ir, pues, desgranando los diferentes grupos de datos que contiene un attachment, los registros del sistema y los archivos de ‘uploads‘.
Datos principales de un attachment
Todos los datos de los attachments
Cuando ejecutamos la ‘Vista previa’ de la página en la que hayamos indicado la plantilla de nuestro plugin, veremos los diferentes attachments de nuestra librería de medios, con estos datos:
ID del attachment
Título del attachment
Ancho de la imagen inicialmente subida a WordPress
Alto de la imagen inicialmente subida a WordPress
Ruta al archivo de la imagen inicial
Nombre del archivo de la imagen inicial
Imagen (a tamaño reducido)
Además, al inicio de cada registro disponemos de tres botones que nos indican: ‘Formatos’, ‘Editables’ y ‘Avanzadas’.
ID y título están sacados de la query que desarrollamos en el artículo 3 de esta misma serie, y que habíamos guardado en $stmpujante_attachments. De la misma consulta extraemos el campo ‘guid’ que contiene el archivo con la ruta completa. Si a este dato le substraemos el nombre del archivo, obtenemos la ruta.
Como veíamos en el artículo 4 de esta serie, con la instrucción wp_get_attachment_metadata( $post_id ) obtenemos los metadatos del attachment, que volcamos en $stmpujante_metadatos. De aquí extraemos el nombre del archivo, y el ancho y el alto de la imagen inicialmente subida.
Formatos del sistema y del attachment, y archivos de ‘uploads’
Si clicamos sobre el botón ‘Formatos’ de cada uno de los attachments, se nos mostrará abajo una tabla adicional.
Todos los datos de un attachment
Vamos a ver, paso a paso, cuál es el proceso para generar esta tabla:
Buscamos, uno por uno, los diferentes tamaños registrados en el sistema, según aprendimos en el artículo 4 de esta serie. Primera columna de datos, ‘Formatos del sistema’.
Por cada uno de ellos, buscamos si hay coincidencia en la matriz ‘sizes’ contenida en $stmpujante_metadatos, arriba mencionada, del attachment en cuestión.
Si existe, la mostramos en la segunda columna de datos, ‘Formatos del attachment’. Además, lo establecemos como vinculado.
Con el nombre del fichero de esta segunda columna, comprobamos si está en el directorio ‘uploads’, como ya vimos en el artículo 2 de esta serie. Aquí también debemos indicar que ya está vinculado.
Una vez hemos terminado con todos los tamaños registrados en el sistema, debemos saber si hay formatos de attachment ‘huérfanos’.
Para ello, buscaremos entre los ‘sizes’ del attachment aquellos que no han sido vinculados, que definiremos como ‘Formato no coincidente’, y mostraremos sus datos.
Entonces, repetiremos la operación con los archivos de ‘uploads’, igual que en el paso 4.
La subtabla de abajo la creamos mediante el plugin que estudiamos la semana pasada en el artículo 6 de esta serie.
Finalmente, una vez hagamos todo este proceso con todos los attachments, buscaremos los archivos que no han sido vinculados, y los mostraremos en una tabla final separada.
Campos editables de un attachment
Si clicamos ahora en el botón ‘Editables’ nos aparecerá esta vez una tabla inferior como esta:
Si os fijáis, los campos que aquí aparecen son los mismos que aparecen en la página ‘Editar medios’ del panel de administración de WordPress.
Aunque estos datos aún no se puedan editar aquí, ya lo haremos. Por lo tanto, ya os adelanto que este será un medio de realizar ajustes SEO a los attachments, más rápido que ir recorriendo uno a uno y editando estos campos.
Casi todos los campos aparecen en la query de los attachments, salvo el ‘Texto Alt’, que lo tenemos que buscar en la tabla ‘wp_options’ de la base de datos de WordPress, es decir, mediante
get_post_meta( $post_id, ‘_wp_attachment_image_alt’, true );
donde $post_id es la id del attachment, ‘_wp_attachment_image_alt’ es la clave del registro y true indica a la función que sea un resultado único.
Los datos avanzados
Os lo reconozco. Los he llamado así porque no sé cómo llamarlos. Son, por un lado, el ‘resto de datos del attachment’; por otro, son los ‘Metadatos de la imagen’.
Todos los datos del attachment
Estos datos, no sé si estaréis de acuerdo conmigo, no merecen ser modificados, y son meramente informativos.
Me reconoceréis que la serie comienza a coger buena pinta. Entiendo que los artículos anteriores eran muy técnicos, y sin efectos prácticos palpables. Pero eran obligatorios si queremos recorrer todo el camino que lleva a la creación de un plugin.
En el próximo artículo, como ya estoy harto del sistema que estamos empleando, aprenderemos a crear una página del menú del panel de administración, en la cual pondremos lo que tenemos, y obviaremos el sistema de plantilla de página. En siguientes artículos iremos añadiendo otras características a nuestro plugin, a la vez que iremos estudiando las diferentes funcionalidades que puede tener, y en qué condiciones.
Como en cada artículo en que se publica un fichero de ejemplo, éste lo podéis encontrar en mi cuenta de GitHub, así como en el grupo de Facebook ‘WordPress en Español‘. Para ver el resultado, es tan fácil como irse a ‘Páginas’ y editar una cualquiera o crear una nueva (no hace falta grabarla ni publicarla), ir a ‘Atributos de página’ -> ‘Plantilla’ y seleccionar la plantilla Artículo 7 serie plugin. Simplemente clicando entonces ‘Vista previa’ visualizaréis lo que hemos visto en este artículo.
Esta semana os dejo ‘chicha’ para qué penséis qué funciones puede tener el plugin y en qué condiciones se podrían ejecutar. Mientras tanto, la lista de contributors permanece así:
Preguntas, previos y retos
Visto lo visto, aquí os lanzo unas preguntas:
¿En qué casos se podrían borrar ficheros?
¿Sería lógico borrar ficheros sin borrar registros?
¿Y borrar registros sin borrar ficheros?
En fin, aquí lo dejo. Presiento y espero, que esta semana habrá más participación. Respuestas, comentarios y sugerencias, en los comentarios. Así quedará registrado.
Entrada anterior:Anterior Cuando no tienes nada que decir
Siguiente entradaSiguiente Creación de subpáginas en el backend WordPress

References: artículo
2
 artículo 3
 artículo 4
 artículo 4
 artículo 2
 artículo 6
 Artículo 7