web-dev-qa-db-fra.com

Supprimer des champs de Media Uploader/Gallery

J'ai cherché haut et bas une réponse.

Je souhaite simplement supprimer les champs URL de texte de remplacement, de légende, de description et de lien de la vue de l'émetteur et de la galerie.

Il me semble que tout ce qui est autre que ce truc-média peut être enlevé.

Merci pour votre aide :)

4
Jonas Thomsen

Vous pouvez le faire via un filtre. Ajoutez ce qui suit à functions.php. Vous pouvez également ajouter vos propres champs de cette façon ...

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

L'exemple ci-dessus supprime plus que nécessaire, mais si vous effectuez une print_r() sur la variable $form_fields, vous verrez ce qu'il est possible d'ajouter/de supprimer.

3
sanchothefat

Malheureusement, il semble que cela ait un peu changé dans WP3.5 lors de la mise à niveau de la médiathèque. Le paramètre $ form_fields de ce filtre ne contient plus les valeurs par défaut. La seule solution que j'ai trouvée jusqu'à présent consiste à supprimer de force le balisage de la vue à l'aide de la mise en mémoire tampon:

Ceci est extrêmement fragile - tout changement dans le noyau WordPress pourrait casser cela

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);
1
funwhilelost