问题描述

如何在新的 Wordpress 3.5 媒体管理器的左侧栏上添加新的菜单项 「插入从 URL」?

我一直在看着骨干 js,试着用自己的 JS 钩住它,但没有成功。

编辑 2:这似乎是诀窍:

http://sumtips.com/2012/12/add-remove-tab-wordpress-3-5-media-upload-page.html

它应该做简单的东西,但我猜它也可以做同样的事情在 Javascript 。如果有关于新媒体经理内部工作的教程/说明,会很好。

最佳解决方案

好的,我觉得我有一些非常接近的答案:

我将代码放在 a gist

结果如下:

media,media-library,wordpress

我建立了几个 Backbone 对象来尊重 MVC 模式:controller.Custom 负责执行所有逻辑,view.Toolbar.Custom 处理工具栏按钮,view.Custom 显示内部 UI 。

次佳解决方案

我正在为”router menu” 添加一个按钮 (添加了”Media Library” 的权限),但系统是一样的。

<script type="text/javascript">
    jQuery(window).on('load', function() {
        var media   = window.wp.media,
        Attachment  = media.model.Attachment,
        Attachments = media.model.Attachments,
        Query       = media.model.Query,
        l10n = media.view.l10n = typeof _wpMediaViewsL10n === 'undefined' ? {} : _wpMediaViewsL10n,
        NewMenuItem;

        jQuery(document).on( 'click', '.insert-media', function( event ) {
            var workflow = wp.media.editor.get();
            var options = workflow.options;
            if( undefined == NewMenuItem ) {
                NewMenuItem = new wp.media.view.RouterItem( _.extend( options, { text: 'New Item!' } ) );
                workflow.menu.view.views.set( '.media-menu', NewMenuItem, _.extend( options, { add: true } ) );
            }

        });
    });
</script>

现在,它什么也没做。那是下一步!

第三种解决方案

您可以挂接到 media_upload_tabs 过滤器以添加选项卡。这是 Network Shared Media 插件使用的方法:

function wpse_76980_add_upload_tab( $tabs ) {
    $newtab = array( 'tab_slug' => 'Tab Name' );
    return array_merge( $tabs, $newtab );
}
add_filter( 'media_upload_tabs', 'wpse_76980_add_upload_tab' );

然后,您可以挂接到 media_upload_tab_slug 操作 (其中 tab_slug 如上所述) 显示选项卡内容:

function wpse_76980_media_upload() {
    // display tab contents
}
add_action( 'media_upload_tab_slug', 'wpse_76980_media_upload' );

第四种方案

我没有一个解决方案,但提示。字符串从数组中获取。您可以通过钩子 media_view_strings 进行过滤。点击后的模式框是一个 javascript,与 WP 3.5 一起构建了 backbone.js 。请参阅/wp-includes/js/media-views.js 中的解决方案。 Backbone 对我来说也是新的,脚本有很多来源。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。