web-dev-qa-db-ja.com

WP3.5 Media Library managerを呼び出す方法

以前のMedia Libraryウィンドウは、次のようにして呼び出すことができました。

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

これはWP3.5でもまだ機能します。しかし、私は新しいメディアマネージャを開く方法を疑問に思いますか? Thickboxでは処理されなくなりました - tb_show()

アドバイスをありがとう!

4
Paul

記事から テーマオプションでWordPress 3.5メディアアップローダを使用する方法(codestag.comによる)WordPress 3.5の使用)プラグイン内のメディアアップローダ(by mikejolley.com)。 Mike Jolleyの記事にはいくつかのNiceトリックがあります。

重要な注意事項:アップローダが使用されるページがある場合にはまだすべてのメディアJS APIがないので、 wp_enqueue_media() を呼び出す必要があります。


カスタムMeta Boxにこのようなボタンがあるとします。

<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> 

次のスクリプトは、新しいアップローダを呼び出し、次の場合に添付ファイルのパスで入力テキストフィールド#_wpse_82857を埋めます。 Insert into post クリックされます。

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