Tombol "Tambah Media" di plugin khusus

12

Saya sedang menulis plugin khusus dan saya ingin menambahkan tombol "Tambah Media".

Saya hanya perlu mengunggah media, bukan untuk mengambil konten / data apa pun dari file yang diunggah.

Bagaimana saya bisa menambahkan tombol ini?

Terima kasih

Pepozzo
sumber

Jawaban:

21

Jika Anda ingin menambahkan tombol tambah media ke panel admin Anda :

Anda perlu menggunakan wp_enqueue_media ();

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

Kemudian gunakan js ini:

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

Gunakan html ini:

<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>
memiringkantimmy
sumber
1
Sempurna! Saya hanya ingin mengganti "$" dengan "jQuery" dan semuanya berfungsi seperti yang diharapkan! Terima kasih.
Libin
Tidak perlu is_admin()saat Anda menggunakan kail admin_enqueue_scripts. Juga, saya akan memeriksa apakah Anda berada di halaman yang benar get_current_screen().
Bjorn
Bagi siapa saja yang, seperti saya, mungkin juga perlu URL untuk gambar, Anda dapat menggunakan berikut: var attachmentURL = wp.media.attachment(attachment.id).get("url");. Saya memasukkan ini ke dalamfunction(props, attachment)
seveninstl
2

Tampilkan pratinjau gambar kecil, bukan angka

Sama seperti tweak, saya melakukan ini ...

mengubah input angka menjadi tersembunyi.

menambahkan:

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

Dan kemudian ... di atas bidang tersembunyi.

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

Itu akan membuat thumbnail terlihat di ujung pengguna alih-alih nomor :)

Rob Mackay
sumber