当前位置: 首页>>建站开发>>正文


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

webfans 建站开发 , , 去评论

问题描述

如何在新的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对我来说也是新的,脚本有很多源代码。

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/2274.html,转载请务必附带本地址声明。