Pulsante "Aggiungi media" nel plug-in personalizzato


12

Sto scrivendo un plug-in personalizzato e vorrei aggiungere il pulsante "Aggiungi media".

Devo solo caricare file multimediali, non recuperare alcun contenuto / dato dal file caricato.

Come posso aggiungere questo pulsante?

Grazie

Risposte:


21

Se si desidera aggiungere un pulsante Aggiungi media ai pannelli di amministrazione :

Devi usare wp_enqueue_media ();

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

Quindi utilizzare questo 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;
            });
        }
    }
});

Usa questo 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
Perfetto! Voglio solo sostituire "$" con "jQuery" e tutto funziona come previsto! Grazie.
Libin,

Non è necessario is_admin()quando si utilizza il gancio admin_enqueue_scripts. Inoltre, vorrei verificare se sei sulla pagina corretta con get_current_screen().
Bjorn,

Per chi, come me, può anche avere bisogno l'URL per l'immagine, è possibile utilizzare il seguente: var attachmentURL = wp.media.attachment(attachment.id).get("url");. L'ho messo dentrofunction(props, attachment)
seveninstl

2

Mostra l'anteprima in miniatura anziché il numero

Proprio come un tweak, ho fatto questo ...

modificato il numero immesso in nascosto.

ha aggiunto:

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

E poi ... sopra il campo nascosto.

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

Ciò renderà visibile un'anteprima alla fine dell'utente anziché un numero :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.