web-dev-qa-db-fra.com

Bouton "Ajouter un média" dans un plugin personnalisé

J'écris un plugin personnalisé et j'aimerais ajouter le bouton "Ajouter un média".

J'ai juste besoin de télécharger un média, pour ne récupérer aucun contenu/donnée du fichier téléchargé.

Comment puis-je ajouter ce bouton?

Merci

11
Pepozzo

Si vous souhaitez ajouter un bouton d’ajout de média à vos panneaux admin :

Vous devez utiliser wp_enqueue_media ();

add_action ( 'admin_enqueue_scripts', function () {
    if (is_admin ())
        wp_enqueue_media ();
} );

Ensuite, utilisez ce js:

jQuery(document).ready(function() {
    var $ = jQuery;
    if ($('.set_custom_images').length > 0) {
        if ( typeof wp !== 'undefined' && wp.media && wp.media.editor) {
            $(document).on('click', '.set_custom_images', function(e) {
                e.preventDefault();
                var button = $(this);
                var id = button.prev();
                wp.media.editor.send.attachment = function(props, attachment) {
                    id.val(attachment.id);
                };
                wp.media.editor.open(button);
                return false;
            });
        }
    }
});

Utilisez ce code HTML:

<p>
    <input type="number" value="" class="regular-text process_custom_images" id="process_custom_images" name="" max="" min="1" step="1">
    <button class="set_custom_images button">Set Image ID</button>
</p>
19
tiltedtimmy

Afficher l'aperçu des vignettes au lieu du nombre

Juste comme un Tweak, j'ai fait ça ...

changé le nombre entré à caché.

ajoutée:

$imgid =(isset( $instance[ 'imgid' ] )) ? $instance[ 'imgid' ] : "";
$img    = wp_get_attachment_image_src($imgid, 'thumbnail');

Et puis ... au-dessus du champ caché.

if($img != "") {
?>
  <img src="<?= $img[0]; ?>" width="80px" /><br />
<?php 
}

Cela rendra une vignette visible du côté utilisateur au lieu d’un nombre :)

1
Rob Mackay