Cómo añadir campos adicionales a WordPress Media Uploader

Mientras trabajábamos en un proyecto en el que creamos una galería muy interesante, totalmente equipada con archivos adjuntos de WordPress y un tipo de mensaje personalizado, nos dimos cuenta de que necesitábamos añadir campos adicionales al cargador de medios de WordPress. Estos campos adicionales nos permitieron dar crédito a cada fotógrafo añadiendo el nombre del fotógrafo y su URL en cada página de imagen. WordPress almacena las imágenes como mensajes en el tipo de mensaje adjunto, por lo que añadir metadatos es como añadir campos personalizados. Debido a que los archivos adjuntos de WordPress no tienen una interfaz de usuario de campos personalizada, tenemos que añadir campos personalizados al cargador de medios para poder recopilar los metadatos. En este artículo, le mostraremos cómo añadir campos adicionales al WordPress Media Uploader.

Utilizaremos los siguientes filtros para realizar el cambio: campos_de_adjuntos_a_editar y campos_de_adjuntos_a_guardar

Para un proyecto como este, le recomendamos que cree un plugin específico para el sitio y que añada el siguiente código. Sin embargo, aún puede agregar los códigos en el archivo functions.php de su tema para que funcione.

123456789101112131414151617181920212223242526272829303132333433536373839404142434445464464748/** * Añadir nombre del fotógrafo y campos URL al cargador de medios * * @param $form_fields array, campos a incluir en el formulario de datos adjuntos * @param $post object, registro de datos adjuntos en la base de datos * @retorno $form_fields, campos de formulario modificados */ functionbe_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 ), `ayudas’=> `’En caso de ser suministradas, el crédito de la fotografía se mostrará’,’, )     $form_fields[‘be-photographer-url’] = array(‘label’=> ‘Photographer URL’, ‘input’=> ‘text’, ‘value’=> get_post_meta( $post->ID, ‘be_photographer_url’, true ), ‘helps’=> `Agregar URL del fotógrafo’, );     return$form_fields;} add_filter( ‘attachment_fields_to_edit’, ‘be_attachment_field_credit’, 10, 2 ); /** Guardar los valores del nombre y la URL del fotógrafo en el cargador de medios * * @param $post array, los datos de la base de datos * @param $attachment array, los campos de adjuntos de $_POST form * @return $post array, datos modificados del puesto */ functionbe_attachment_field_credit_save( $post, $attachment) { if( isset( $attachment[‘be-photographer-name’] ) update_post_meta( $post[‘ID’], ‘be_photographer_name’, $attachment[‘be-photographer-name’] );     if( isset( $attachment[‘be-photographer-url’]] )update_post_meta( $post[‘ID’], ‘be_photographer_url’, esc_url( $attachment[‘be-photographer-url’] ); return$post;} add_filter( ‘attachment_fields_to_save’, ‘be_attachment_field_credit_save’, 10, 2);?>

El código de arriba añadirá dos campos de texto al cargador de medios llamados Nombre del fotógrafo y URL del fotógrafo. Puede ver eso en la captura de pantalla de abajo:

Explicación del código: En la primera función, simplemente estamos usando una matriz para especificar la etiqueta del campo, el tipo de entrada, el valor y el texto de ayuda. La segunda función es verificar si se ha fijado un valor para esos campos. Si se establece el valor, se actualizan los metadatos del mensaje.

Si desea visualizar los campos en su plantilla de anexos, simplemente pegue los siguientes códigos dentro del bucle:

1echoget_post_meta($post->ID, ‘be_photographer_url’, true);

Si desea mostrar los campos de su imagen destacada en su plantilla de archivo o en cualquier otra plantilla, entonces simplemente utilice:

1echoget_post_meta(get_post_thumbnail_id(), ‘be_photographer_url’, true);

Esperamos que hayan disfrutado de este artículo. Para aquellos que no saben cómo crear una plantilla de adjuntos, no se preocupen. En el siguiente artículo, veremos cómo crear una plantilla de adjuntos en WordPress.

Un aplauso para Bill Erickson por enseñarnos cómo hacer esto.

Deja un comentario