Ce message explique comment supprimer les champs non désirés de l'utilitaire de téléchargement multimédia. Cela fonctionne très bien, mais je veux le limiter à un type personnalisé et je n'arrive pas à comprendre comment le faire. J'ai essayé le code suivant, mais cela ne semble pas fonctionner:
add_filter('attachment_fields_to_edit', 'remove_media_upload_fields', 10000, 2);
function remove_media_upload_fields( $form_fields, $post ) {
global $my_admin_page;
$screen = get_current_screen();
if ( 'slider' == $screen->post_type ){
unset( $form_fields['image-size'] );
unset( $form_fields['post_excerpt'] );
unset( $form_fields['url'] );
unset( $form_fields['image_url'] );
unset( $form_fields['align'] );
}
return $form_fields;
}
Des idées sur la façon de faire fonctionner cela?
Merci,
Moshe
L'écran actuel ne semble pas être défini lors de l'exécution de ce filtre, vous ne pouvez donc pas l'utiliser. En outre, le $post
fait en fait référence à la pièce jointe, pas à la publication - nous ne pouvons donc pas obtenir la typographie de la publication non plus ....
Donc, regardant le code source: http://core.trac.wordpress.org/browser/tags/3.3.2/wp-admin/includes/media.php
Le filtre que vous utilisez est appelé par get_attachment_fields_to_edit
, suivi de cela - nous le trouvons appelé par get_media_item
.
En regardant get_media_time
, il ne passe malheureusement pas l'ID ou l'objet de la publication. Cependant, il a:
$current_post_id = !empty( $_GET['post_id'] ) ? (int) $_GET['post_id'] : 0;
Cela indique que le seul moyen d'obtenir l'ID de publication (et donc le type de publication) est de le récupérer à partir de $_GET
. Il serait préférable que cela soit passé avec le tableau $args
qui est défini à ce moment-là.
Alors:
add_filter('attachment_fields_to_edit', 'remove_media_upload_fields', 10000, 2);
function remove_media_upload_fields( $form_fields, $post ) {
$post_id = !empty( $_GET['post_id'] ) ? (int) $_GET['post_id'] : 0;
$post_type = get_post_type($post_id);
if( 'slider' == $post_type ){
// 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;
}