Mientras trabajábamos en un proyecto en el que creamos una galería genial totalmente impulsada por archivos adjuntos de WordPress y tipo de publicación personalizada, encontramos la necesidad de agregar algunos campos adicionales al descargador de medios de WordPress. Estos campos adicionales nos permitieron dar crédito a cada fotógrafo agregando el nombre del fotógrafo y la URL en cada página de imagen. WordPress almacena imágenes como publicaciones en el tipo de publicación adjunta, por lo que agregar metadatos es como agregar campos personalizados. Dado que los archivos adjuntos de WordPress no tienen una interfaz de usuario de campos personalizados, debemos agregar campos personalizados al cargador de medios para recopilar metadatos. En este artículo, le mostraremos cómo agregar campos adicionales a WordPress Media Uploader. Usaremos los siguientes filtros para realizar el cambio: attach_fields_to_edit y attach_fields_to_save Para un proyecto como este, recomendamos encarecidamente que cree un complemento específico del sitio y agregue el siguiente código. Sin embargo, aún puede agregar los códigos al archivo functions.php de su tema para que funcione. / ** * Agregar campos Nombre del fotógrafo y URL al descargador de medios * * Array @param $ form_fields, campos para incluir en el formulario de adjunto * @param $ objeto de publicación, registro de adjunto en la base de datos * @ return $ form_fields, campos de formulario modificados * / función be_attachment_field_credit ($ form_fields, $ post) {$ form_fields[‘be-photographer-name’] = array (‘label’ => ‘Nombre del fotógrafo’, ‘input’ => ‘text’, ‘value’ => get_post_meta ($ post-> ID, ‘be_photographer_name’, true), ‘help’ => ‘Si se proporciona , se mostrará el crédito de la foto ‘,); $ form_fields[‘be-photographer-url’] = array (‘label’ => ‘URL del fotógrafo’, ‘input’ => ‘text’, ‘value’ => get_post_meta ($ post-> ID, ‘be_photographer_url’, true), ‘help’ => ‘Agregar un URL del fotógrafo ‘,); return $ form_fields; } add_filter (‘campos_anexos_a_editar’, ‘be_attachment_field_credit’, 10, 2); / ** * Guardar el nombre del fotógrafo y los valores de URL en el cargador de medios * * @param $ matriz de publicaciones, datos de publicación para la base de datos * @param $ matriz de adjuntos, campos de adjuntos del formulario $ _POST * @return $ matriz de publicaciones, datos de publicaciones modificados * / function be_attachment_field_credit_save ($ publicación, $ archivo adjunto) {if (isset ($ archivo adjunto[‘be-photographer-name’] )) update_post_meta ($ publicación[‘ID’], ‘be_photographer_name’, $ archivo adjunto[‘be-photographer-name’] ); if (isset ($ archivo adjunto[‘be-photographer-url’] )) update_post_meta ($ publicación[‘ID’], ‘be_photographer_url’, esc_url ($ archivo adjunto[‘be-photographer-url’] )); return $ post; } add_filter (‘campos_anexos_para_guardar’, ‘be_attachment_field_credit_save’, 10, 2); ?> El código anterior agregará dos campos de texto al cargador de medios llamados Nombre del fotógrafo y URL del fotógrafo. Puede verlo en la captura de pantalla a continuación:

Explicación del código: En la primera función, solo usamos una matriz para especificar la etiqueta del campo, el tipo de entrada, el valor y el texto de ayuda. La segunda función comprueba si se ha definido un valor para estos campos. Si se establece el valor, se actualizan los metadatos de la publicación. Si desea mostrar los campos en su plantilla de archivo adjunto, simplemente pegue los siguientes códigos en el bucle: echo get_post_meta ($ post-> ID, ‘be_photographer_url’, true); Si desea mostrar los campos de su imagen seleccionada en su plantilla de archivo o cualquier otra plantilla, simplemente use: echo get_post_meta (get_post_thumbnail_id (), ‘be_photographer_url’, true); Esperamos que haya disfrutado de este artículo. Para aquellos que no saben cómo crear una plantilla de archivo adjunto, no se preocupen. En el próximo artículo, veremos cómo crear una plantilla de archivo adjunto en WordPress. Me quito el sombrero ante Bill Erickson por mostrarnos cómo hacer esto.