Eliminando campos del Media Uploader / Gallery

4

He estado buscando una respuesta alta y baja.

Simplemente quiero eliminar los campos de texto alternativo, título, descripción y URL de enlace de la vista de la galería y del cargador.

Parece que todo lo que no sea este Media-thingy puede eliminarse.

Gracias por ayudar :)

    
pregunta Jonas Thomsen 14.03.2012 - 17:10

3 respuestas

3

Puedes hacer esto a través de un filtro. Agregue lo siguiente a functions.php. También puede agregar sus propios campos de esta manera ...

// edit fields in media upload area
add_filter('attachment_fields_to_edit', 'remove_media_upload_fields', 10000, 2);
function remove_media_upload_fields( $form_fields, $post ) {

    // remove unnecessary fields
    unset( $form_fields['image-size'] );
    unset( $form_fields['post_excerpt'] );
    unset( $form_fields['post_content'] );
    unset( $form_fields['url'] );
    unset( $form_fields['image_url'] );
    unset( $form_fields['align'] );

    return $form_fields;
}

El ejemplo anterior elimina más de lo necesario, pero si haces un print_r() en la variable $form_fields , verás qué hay disponible para agregar / eliminar.

    
respondido por el sanchothefat 14.03.2012 - 18:57
1

Lamentablemente, parece que esto cambió bastante en WP3.5 cuando actualizaron la biblioteca de medios. El parámetro $ form_fields de ese filtro ya no contiene los valores predeterminados. La única solución que he encontrado hasta ahora es eliminar por la fuerza el marcado de la vista utilizando el búfer:

Esto es extremadamente frágil: cualquier cambio en el núcleo de WordPress podría romper esto

function wpse45562_remove_media_fields( $buffer ) {
    // remove the 'caption' block
    $buffer = preg_replace( '~<p>\s*<label\s*for="attachment_caption">.*?</p>~ims', '', $buffer );
    // remove the 'alt text' block
    $buffer = preg_replace( '~<p>\s*<label\s*for="attachment_alt">.*?</p>~ims', '', $buffer );

    // remove the 'description' box (and label separately)
    $buffer = preg_replace( '~<div\s*id="wp-attachment_content-editor.*?</div>~ims', '',   $buffer );
    $buffer = preg_replace( '~<label\s*for="content">.*?</label>~ims', '', $buffer );

    return $buffer;
}

function wpse45562_media_strip_buffer_start() { ob_start("wpse45562_remove_media_fields");  }
function wpse45562_media_strip_buffer_end() { ob_end_flush(); }

add_action('admin_head', 'wpse45562_media_strip_buffer_start', 10, 1);
add_action('admin_footer', 'wpse45562_media_strip_buffer_end', 10, 1);
    
respondido por el funwhilelost 03.04.2013 - 23:31
-1

La respuesta de sanchothefat es correcta, realmente funciona como un encanto.

Solo para aumentar su respuesta, puedes usar unset( $form_fields['image_alt'] ); para eliminar el texto alternativo.

Gracias por responder a sanchothefat, me ayudó.

    
respondido por el Feel The Noise 19.11.2012 - 19:11

Lea otras preguntas en las etiquetas