theme_folder/images/patterns
列出列表中的图片,我尝试过类似的操作来添加标签,但由于它对我不起作用在媒体管理器侧面添加标签,但是在图像上传中该标签不可见。
function custom_media_upload_tab_name( $tabs ) {
$newtab = array( 'tab_slug' => 'Patterns' );
return array_merge( $tabs, $newtab );
}
add_filter( 'media_upload_tabs', 'custom_media_upload_tab_name' );
function custom_media_upload_tab_content() {
// Add you content here.
echo 'Hello content';
}
add_action( 'media_upload_tab_slug', 'custom_media_upload_tab_content' );
确切地说,这是我想要添加新选项卡的地方,在该选项卡中,我想列出主题文件夹中的图像。
我知道媒体管理器JS需要为此进行重写,但是老实说,我不知道从哪里开始。看来我需要为媒体管理器编写一个全新的模板才能实现此目的。
我仔细研究了所有建议,但似乎没人在读这个问题。
建议
“我尝试过类似的操作来添加选项卡,但是它对我不起作用,因为它在媒体管理器的侧面添加了选项卡,但是在图像上载时该选项卡不可见。”
因此,目前还没有人能够找到解决方案。
#1 楼
这是一个旧线程,但对我而言仍然如此。我一直在摆弄,并想出了用于在此处添加媒体标签的代码,也许有人想继续了解该标签的句柄内容如何? :)
add_action('admin_enqueue_scripts', function(){
wp_enqueue_script( 'my-media-tab', plugin_dir_url( __FILE__ ) . '/js/mytab.js', array( 'jquery' ), '', true );
});
然后是js文件:
var l10n = wp.media.view.l10n;
wp.media.view.MediaFrame.Select.prototype.browseRouter = function( routerView ) {
routerView.set({
upload: {
text: l10n.uploadFilesTitle,
priority: 20
},
browse: {
text: l10n.mediaLibraryTitle,
priority: 40
},
my_tab: {
text: "My tab",
priority: 60
}
});
};
编辑:
好,所以。对于处理内容,wp.media尚未找到一种很好的方法。我当前的解决方案是2个许可人,一个用于打开媒体库,一个用于单击媒体路由器菜单;
jQuery(document).ready(function($){
if ( wp.media ) {
wp.media.view.Modal.prototype.on( "open", function() {
if($('body').find('.media-modal-content .media-router a.media-menu-item.active')[0].innerText == "My tab")
doMyTabContent();
});
$(wp.media).on('click', '.media-router a.media-menu-item', function(e){
if(e.target.innerText == "My tab")
doMyTabContent();
});
}
});
函数doMyTabContent();就像这样;
function doMyTabContent() {
var html = '<div class="myTabContent">';
//My tab content here
html += '</div>';
$('body .media-modal-content .media-frame-content')[0].innerHTML = html;
}
我非常确定这可以用更加精致的方式完成。谁阅读并有更好的解决方案,请填写:-)
#2 楼
根据WordPress Codex,您可以在媒体上传器中添加自定义标签,如下所示:// add the tab
add_filter('media_upload_tabs', 'my_upload_tab');
function my_upload_tab($tabs) {
$tabs['mytabname'] = "My Tab Name";
return $tabs;
}
// call the new tab with wp_iframe
add_action('media_upload_mytabname', 'add_my_new_form');
function add_my_new_form() {
wp_iframe( 'my_new_form' );
}
// the tab content
function my_new_form() {
echo media_upload_header(); // This function is used for print media uploader headers etc.
echo '<p>Example HTML content goes here.</p>';
}
希望它会为您提供帮助。
评论
为了清楚起见,该选项卡未添加到模式框的顶部,而是添加到左侧边栏。我找不到将标签实际添加到“插入媒体”标签顶部的方法。我也遇到了尝试使用已经可用的CSS样式的问题,因为内容已插入iframe中。这可能意味着您需要添加自己的CSS才能正确显示图像。只是为了完成答案,您可以使用php scandir()函数检索图像文件夹内的所有项目。
– gdaniel
2015年6月5日在16:01
#3 楼
function axcoto_genify_media_menu($tabs) {
$newtab = array('genify' => __('Axcoto Genify', 'axcotogenify'));
return array_merge($tabs, $newtab);
}
add_filter('media_upload_tabs', 'axcoto_genify_media_menu');
array('genify' => __('Axcoto Genify', 'axcotogenify'));
function axcoto_genify_media_process() {
media_upload_header();
echo 'hello';
}
function axcoto_genify_media_menu_handle() {
return wp_iframe( 'axcoto_genify_media_process');
}
if ( ( is_array( $content_func ) && ! empty( $content_func[1] ) && 0 === strpos( (string) $content_func[1], 'media' ) ) || 0 === strpos( $content_func, 'media' ) )
wp_enqueue_style( 'media' );
评论
您的代码充满语法错误。请使用正确的php语法,因为您使用的语法甚至不存在于php中。另外,请解释您的代码做什么以及如何工作。谢谢
–Pieter Goosen
2015年6月5日在8:17
我刚刚编辑了代码。它的工作代码。尝试此代码。
–萨拉斯
2015年6月5日在8:28
请重新阅读我的评论,但跳过语法部分。转储代码不是质量的答案。请为您的代码及其工作原理添加说明
–Pieter Goosen
2015年6月5日9:21
评论
为此,thnx将对此进行调查。古老与否从来没有解决过。这正是我要求的prntscr.com/kse5yk。很好!
–贝恩
18-09-9在17:09
您是否尝试将这个wordpress.stackexchange.com/a/190604/67176和您的标签创建结合在一起?我99%确信它可以正常工作,特别是如果选项卡具有相同的ID。
–贝恩
18/09/10在10:09
是的,我首先研究了该问题,但我并不是该解决方案随附的iframe解决方案的忠实拥护者。通过iframe消息传递接收图像数据。显示内容是一回事,而处理动作是另一回事。 :)也许我错过了一些东西。
– Gubbfett
18-09-11的16:25
您好@Benn再次陷入wp.media噩梦。我在上面执行“ doMyTabContent”操作时提供的代码仅在一个事件上触发。例如:加载帖子,单击添加特色图片并关闭。单击此按钮后,为帖子添加媒体,并且不会加载任何内容,这可能是因为wp.media在新实例中(选项卡仍在其中)。我不确定如何继续前进。您在添加标签和以某种方式插入媒体方面是否取得了任何进展?想分享一些代码吗? :)
– Gubbfett
19年6月17日在17:38
@gubbfett您是否找到了解决方案?
– RaajTram
19年9月1日在6:49