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


12

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

J'ai juste besoin de télécharger des médias, de ne pas récupérer de contenu / données du fichier téléchargé.

Comment puis-je ajouter ce bouton?

Merci

Réponses:


21

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

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) {
            $('.set_custom_images').on('click', 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 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>

1
Parfait! Je veux juste remplacer "$" par "jQuery" et tout fonctionne comme prévu! Je vous remercie.
Libin

Pas besoin de is_admin()quand vous utilisez le crochet admin_enqueue_scripts. Aussi, je vérifierais si vous êtes sur la bonne page avec get_current_screen().
Bjorn

Pour ceux qui, comme moi, peut aussi avoir besoin l'URL de l'image, vous pouvez utiliser ce qui suit: var attachmentURL = wp.media.attachment(attachment.id).get("url");. Je mets ça à l'intérieurfunction(props, attachment)
seveninstl

2

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

Juste comme un ajustement, je l'ai fait ...

changé l'entrée numérique en 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 miniature visible à la fin de l'utilisateur au lieu d'un nombre :)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.