web-dev-qa-db-fra.com

Comment appeler WP3.5 Media Library Manager?

Dans le passé, la fenêtre de la médiathèque pouvait être appelée ainsi:

tb_show("Upload image", "media-upload.php?type=image&TB_iframe=1&width=640&height=520");

Cela fonctionne toujours dans WP3.5. Mais je me demande comment ouvrir un nouveau gestionnaire de médias? Ce n'est plus géré par Thickbox - tb_show().

Merci pour tout conseil!

4
Paul

De l'article Comment utiliser WordPress 3.5 Media Uploader dans les options de thème (par codestag.com) , comme indiqué dans tilisation de WordPress 3.5 Media Uploader dans les plugins (par mikejolley.com) L'article de Mike Jolley présente quelques astuces intéressantes.

Remarque importante : si la page où le programme de téléchargement va être utilisé ne possède pas déjà toutes les API JS de média, alors wp_enqueue_media() doit être appelé.


Donc, supposons que nous ayons un bouton comme celui-ci dans une Meta Box personnalisée:

<div class="uploader">
      <input type="text" name="settings[_wpse_82857]" id="_wpse_82857" />
      <input class="button" name="_wpse_82857_button" id="_wpse_82857_button" value="Upload" />
</div> 

Le script suivant appelle le nouveau programme de téléchargement et remplit le champ de saisie #_wpse_82857 avec le chemin de la pièce jointe lorsque Insert into post est cliqué.

jQuery(document).ready(function($)
{
    var _custom_media = true,
        _orig_send_attachment = wp.media.editor.send.attachment;

    // ADJUST THIS to match the correct button
    $('.uploader .button').click(function(e) 
    {
        var send_attachment_bkp = wp.media.editor.send.attachment;
        var button = $(this);
        var id = button.attr('id').replace('_button', '');
        _custom_media = true;
        wp.media.editor.send.attachment = function(props, attachment)
        {
            if ( _custom_media ) 
            {
                $("#"+id).val(attachment.url);
            } else {
                return _orig_send_attachment.apply( this, [props, attachment] );
            };
        }

        wp.media.editor.open(button);
        return false;
    });

    $('.add_media').on('click', function()
    {
        _custom_media = false;
    });
});
10
brasofilo