Removendo campos do Media Uploader / Gallery

4

Eu tenho procurado alto e baixo por uma resposta.

Eu simplesmente quero remover os campos Alternar texto, Legenda, Descrição e Vincular URL da tela de envio e galeria.

Parece que tudo o mais que esta mídia pode ser removido.

Thanx por ajudar:)

    
por Jonas Thomsen 14.03.2012 / 17:10

3 respostas

3

Você pode fazer isso por meio de um filtro. Adicione o seguinte ao functions.php. Você também pode adicionar seus próprios campos dessa maneira ...

// 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;
}

O exemplo acima retira mais do que o necessário, mas se você fizer um print_r() na variável $form_fields , verá o que está disponível para adicionar / remover.

    
por sanchothefat 14.03.2012 / 18:57
1

Infelizmente, parece que isso mudou um pouco no WP3.5 quando eles atualizaram a biblioteca de mídia. O parâmetro $ form_fields do filtro não contém mais os padrões. A única solução que encontrei até agora é forçar a remoção da marcação da exibição usando o buffer:

Isso é extremamente frágil - qualquer alteração no núcleo do WordPress pode quebrar isso

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);
    
por funwhilelost 03.04.2013 / 23:31
-1

A resposta da sanchothefat está correta, funciona como um feitiço.

Apenas para aumentar sua resposta, você pode usar unset( $form_fields['image_alt'] ); para remover o texto alternativo.

Obrigado por responder sanchothefat, me ajudou.

    
por Feel The Noise 19.11.2012 / 19:11