3.5媒体管理器将css/js添加到新的‘Tab’iFrame内容

时间:2013-01-04 作者:Richard Sweeney

在(耐心地)等待新媒体上传器的正确文档和/或一些教程的同时,我仍在使用media_upload_tabs筛选以向上载程序添加选项卡。这是我的(工作)代码:

<?php

add_filter( \'media_upload_tabs\', \'olab_add_media_tab\' );
function olab_add_media_tab( $tabs ) {
    $tabs[\'bildarkiv\'] = __( \'Bildarkiv\', \'bildarkiv\' );
    return $tabs;
}

add_action( \'media_upload_bildarkiv\', \'olab_tab_content\' );
function olab_tab_content() {
  ?>
  <h1>WOOT!</h1>
  <?php
}

add_action( \'print_media_templates\', \'obab_enqueue_admin_stuff\' );
function obab_enqueue_admin_stuff() {
  wp_register_style( \'bak-css\', plugins_url( \'css/main.css\', __FILE__ ) );
  wp_enqueue_style( \'bak-css\' );
  wp_enqueue_script( \'bak-js\', plugins_url( \'js/app.js\', __FILE__ ), \'jquery\' );
}
这一切都是可行的,但选项卡的内容包含在一个iFrame中,这意味着我的排队脚本+样式完全不起任何作用!

我不介意iFrame,但我找不到将CSS/JS附加到<head> iFrame的。渲染iFrame时,任何内联JS都会被剥离。

有人知道这件事吗?

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

你需要将你的风格和脚本在媒体上传挂钩中排队,然后分类wp_iframe 作用只要这样做,它就会起作用:

<?php

add_filter( \'media_upload_tabs\', \'olab_add_media_tab\' );
function olab_add_media_tab( $tabs ) {
    $tabs[\'bildarkiv\'] = __( \'Bildarkiv\', \'bildarkiv\' );
    return $tabs;
}

add_action( \'media_upload_bildarkiv\', \'olab_tab_iframe\' );
function olab_tab_iframe() {
    wp_register_style( \'bak-css\', plugins_url( \'css/main.css\', __FILE__ ) );
    wp_enqueue_style( \'bak-css\' );

    wp_enqueue_script( \'bak-js\', plugins_url( \'js/app.js\', __FILE__ ), \'jquery\' );

    wp_iframe( \'olab_tab_content\' );
}

function olab_tab_content() {
    ?>
    <h1>WOOT!</h1>
    <?php
}

结束