向WordPress 3.5媒体管理器添加菜单项

时间:2012-12-22 作者:erezie

如何在新Wordpress 3.5媒体管理器左侧边栏的“从URL插入”下添加新菜单项?

我一直在研究主干js,并尝试用我自己的js连接到它,但没有成功。

编辑2:这似乎可以做到:

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

对于简单的东西应该这样做,但我想在Javascript中也可以这样做。如果有关于新媒体管理器内部工作原理的教程/说明就好了。

4 个回复
最合适的回答,由SO网友:Fabien Quatravaux 整理而成

好吧,我想我有一个非常接近答案的东西:

我把代码放进去了a gist

结果如下:custom menu screenshot

我构建了几个主干对象来尊重MVC模式:controller.Custom 负责完成所有逻辑view.Toolbar.Custom 处理工具栏按钮,以及view.Custom 显示内部UI。

SO网友:Joost

我正在为“路由器菜单”添加一个按钮(在“媒体库”右侧添加一些内容),但系统是一样的。

<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>
现在,它还没有做任何事情。这是下一步!

SO网友:shea

你可以在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\' );

SO网友:bueltge

我没有解决方案,但有一些提示。字符串来自数组。您可以通过挂钩进行过滤media_view_strings. 单击后的模式框是一个javascript,使用主干构建。自WP 3.5以来的js。请参见/wp-includes/js/media-views.js 寻找解决方案。主干对我来说也是新的,脚本有很多源代码。

结束

相关推荐

Media Uploader in custom path

我正在我的WordPress主题中创建一个CSS生成器,我希望能够用图像保存自定义皮肤。我的问题是,对于上传的图像,我有一个类似于/皮肤/自定义皮肤/图像的层次结构,但正如您所知,WordPress媒体上传程序默认情况下会将它们放在uploads文件夹中,按日期排序。我的问题是,我是否可以指定每次上载新图像时将图像保存到的路径?