Butonul "Adaugă media" în plugin-ul personalizat

2 sept. 2013, 18:09:52
Vizualizări: 28.1K
Voturi: 13

Scriu un plugin personalizat și aș dori să adaug butonul "Adaugă media".

Am nevoie doar să încarc fișiere media, nu să preiau niciun conținut/date din fișierul încărcat.

Cum pot adăuga acest buton?

Mulțumesc

0
Toate răspunsurile la întrebare 2
4
26

Dacă doriți să adăugați un buton de adăugare media în panourile de administrare:

Trebuie să utilizați wp_enqueue_media();

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

Apoi folosiți acest cod JavaScript:

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;
            });
        }
    }
});

Utilizați acest 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">Setează ID imagine</button>
</p>
4 sept. 2013 22:26:00
Comentarii

Perfect! Voiam doar să înlocuiesc "$" cu "jQuery" și totul funcționează conform așteptărilor! Mulțumesc.

Libin Libin
31 dec. 2014 13:01:59

Nu este nevoie de is_admin() când folosești hook-ul admin_enqueue_scripts. De asemenea, aș verifica dacă ești pe pagina corectă cu get_current_screen().

Bjorn Bjorn
7 aug. 2019 00:28:18

Pentru oricine care, ca mine, ar putea avea nevoie și de URL-ul pentru imagine, poți folosi următoarea linie de cod: var attachmentURL = wp.media.attachment(attachment.id).get("url");. Am plasat acest cod în interiorul funcției function(props, attachment)

seveninstl seveninstl
6 mar. 2020 20:01:26

@seveninstl Eu folosesc Worpdress 5.6 și attachment.url funcționează. Există vreun motiv pentru a folosi wp.media.attachment(attachment.id).get("url") ?

leaf leaf
10 dec. 2020 11:44:54
0

Afișează previzualizarea miniaturii în loc de număr

Doar ca o modificare, am făcut asta...

am schimbat input-ul de tip number în hidden.

am adăugat:

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

Și apoi... deasupra câmpului hidden.

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

Asta va face ca o miniatură să fie vizibilă în interfața utilizatorului în loc de un număr :)

27 mar. 2015 22:15:16