Botón "Añadir Multimedia" en plugin personalizado

2 sept 2013, 18:09:52
Vistas: 28.1K
Votos: 13

Estoy escribiendo un plugin personalizado y me gustaría añadir el botón "Añadir Multimedia".

Solo necesito subir archivos multimedia, no necesito recuperar ningún contenido/dato del archivo subido.

¿Cómo puedo añadir este botón?

Gracias

0
Todas las respuestas a la pregunta 2
4
26

Si deseas agregar un botón para añadir medios a tus paneles de administración:

Necesitas usar wp_enqueue_media();

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

Luego usa este código 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;
            });
        }
    }
});

Usa este 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">Establecer ID de Imagen</button>
</p>
4 sept 2013 22:26:00
Comentarios

¡Perfecto! Solo quería reemplazar "$" por "jQuery" y todo funciona como esperaba. ¡Gracias!

Libin Libin
31 dic 2014 13:01:59

No es necesario usar is_admin() cuando utilizas el hook admin_enqueue_scripts. Además, recomendaría verificar si estás en la página correcta con get_current_screen().

Bjorn Bjorn
7 ago 2019 00:28:18

Para cualquiera que, como yo, también pueda necesitar la URL de la imagen, puedes usar lo siguiente: var attachmentURL = wp.media.attachment(attachment.id).get("url");. Lo coloqué dentro de function(props, attachment)

seveninstl seveninstl
6 mar 2020 20:01:26

@seveninstl Yo uso WordPress 5.6 y attachment.url funciona. ¿Hay alguna razón para usar wp.media.attachment(attachment.id).get("url")?

leaf leaf
10 dic 2020 11:44:54
0

Mostrar vista previa de la miniatura en lugar del número

Como un pequeño ajuste, hice esto...

Cambié el campo de entrada de número a oculto.

Añadí:

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

Y luego... encima del campo oculto.

if($img != "") {
?>
  <img src="<?= $img[0]; ?>" width="80px" alt="Vista previa de la miniatura" title="Vista previa de la imagen" /><br />
<?php 
}

Esto hará que se muestre una miniatura en la interfaz de usuario en lugar de un número :)

27 mar 2015 22:15:16