如何通过插件将自定义样式表添加到WordPress中的TinyMCE?

时间:2015-02-02 10:18:19

标签: wordpress wordpress-plugin tinymce

我正在尝试在我正在开发的WordPress插件中向TinyMCE编辑器添加自定义样式表。 WP codex告诉我使用mce_css过滤器,但它没有接缝工作。

很快,当我使用过滤器时,所有主题的自定义样式表都会从编辑器中消失,但我的自定义样式表仍然不存在。

请参阅以下两个屏幕截图,第一个没有过滤器,第二个过滤器已激活:

normal

filter activated

这是我的代码:

class test_plugin {

function __construct($args = array()){

    if ( is_admin() ){
        add_action('admin_head', array( $this, 'admin_head') );
        add_action( 'admin_enqueue_scripts', array($this , 'admin_enqueue_scripts' ) );
    }

}


function admin_head() {

    if ( !current_user_can( 'edit_posts' ) && !current_user_can( 'edit_pages' ) ) {
        return;
    }

    if ( 'true' == get_user_option( 'rich_editing' ) ) {
        add_filter( 'mce_css', 'plugin_mce_css' );
    }

}


function admin_enqueue_scripts(){
     // wp_enqueue_style('fa_icon_shortcode', plugins_url( 'css/mce-button.css' , __FILE__ ) );
}


function plugin_mce_css( $mce_css ) {

    if ( ! empty( $mce_css ) )
        $mce_css .= ',';

    $mce_css .= plugins_url( 'editor.css', __FILE__ );

    return $mce_css;

}

}

new test_plugin();

知道这里出了什么问题吗?

1 个答案:

答案 0 :(得分:1)

这实际上是一个非常简单的解决方案。由于我使用的是OOP,我不得不用

添加过滤器
add_filter( 'mce_css', array( $this , 'plugin_mce_css' ) );

而不是

add_filter( 'mce_css', 'plugin_mce_css' );

像魅力一样工作!