Tout savoir sur WordPress

Appeler le gestionnaire des médias sans charger l’éditeur

Découvrez la démarche à suivre pour avoir le gestionnaire des médias pour un Custom Post Type même si vous avez désactivé l’éditeur de WordPress.

Vous avez la possibilité, lors de la création d’un « Custom Post Type » (au sein d’un plugin par exemple) de définir les modules que vous souhaitez charger ou non. Lorsque vous décidez de ne pas afficher l’éditeur visuel de WordPress, le gestionnaire des médias n’est plus disponible.

Si vous souhaitez faire appel à la popup de la bibliothèque de médias sans charger l’éditeur principal, il est nécessaire d’utiliser une astuce en passant par la création d’une métabox.

Copier le code suivant dans le fichier functions.php de votre thème :

add_action( 'add_meta_boxes', 'gkp_custom_gallery_metaBox' );
function gkp_custom_gallery_metaBox() {
    add_meta_box(
        'post_meta',
        'Gestion des images',
        'custom_gallery_metaBox_html',
        'slug-cpt',
        'normal',
        'high'
    );
}
function custom_gallery_metaBox_html() {
   global $post;
   echo '<a href="media-upload.php?post_id='.$post->ID.'&TB_iframe=1" class="thickbox add_media button" id="content-add_media" title="Ajouter un média" onclick="return false;">Cliquez ici pour charger le gestionnaire de medias</a>';
}

N’oubliez pas de modifier « slug-cpt » par le slug de votre Custom Post Type !

Remarque : Les médias ajoutés seront alors automatiquement reconnus comme étant des pièces jointes à votre post.

Cet article a été publié il y a 2416 jours - Il n'est peut être plus à jour !

Article écrit par Nico

7 Commentaires

  1. je vais peut-être dire une connerie, mais pourquoi les balises ouvrantes et fermantes de php autour du contenu de la seconde fonction ?

  2. Si on est dans un custom post type sans l’éditeur, le bouton ne fonctionne pas…

    J’imagine qu’il y a besoin d’un Js qui n’est pas chargé sans l’éditeur ?
    Lequel est-ce ?

  3. @MFREREBEAU : Cela fonctionne très bien chez moi. Il doit avoir une erreur dans le slug de votre CPT ;)

  4. Non, c’est pas lié au slug.
    En fait comme je ne chargeais pas du tout le TinyMCE, les 2 librairies liés aux média ne s’étaient pas chargées.
    J’ai ajouté ces 2 lignes : wp_enqueue_script(‘media-upload’);
    wp_enqueue_script(‘thickbox’);

pulvinar vel, felis leo venenatis nunc justo