如何呼叫WP3.5媒体库管理器?

时间:2013-01-23 作者:Paul

在过去,媒体库窗口可以这样调用:

tb_show("Upload image", "media-upload.php?type=image&TB_iframe=1&width=640&height=520");
这在WP3中仍然有效。但我想知道如何开一个新的媒体经理?它不再由Thickbox处理-tb_show().

谢谢你的建议!

1 个回复
最合适的回答,由SO网友:brasofilo 整理而成

从文章中How to use WordPress 3.5 Media Uploader in Theme Options (由codestag.com提供),如中所示Using the WordPress 3.5 Media Uploader within plugins (由mikejolley.com提供)<迈克·乔利的文章有一些很好的技巧

Important note: 如果要使用上载程序的页面doesn\'t already have 所有媒体JS API,然后wp_enqueue_media() 必须打电话。

因此,假设我们在自定义元框中有这样一个按钮:

<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 单击“插入帖子”时的附件路径。

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

结束

相关推荐

如何在Media Upload中默认选择图像大小-WP v3.5

与我赤裸。我想在媒体上载弹出页面中默认选择自定义图像大小。在Wordpress v3中。4.2及之前,此优雅的代码运行良好:function my_insert_custom_image_sizes( $sizes ) { // get the custom image sizes global $_wp_additional_image_sizes; // if there are none, just return the built-in sizes&