除非目标选择器是唯一突出显示的内容,否则我将禁用清除格式的自定义TinyMCE格式

时间:2015-05-21 21:23:32

标签: php tinymce wordpress

我创建了一个简单的WordPress插件(下面复制),为TinyMCE添加一个自定义按钮,删除某些格式,在本例中为span标签。我在帖子上测试了它的内容如下:

a <span style="color: red;">test</span>

但该按钮仅在我突出显示目标选择器时才有效。在这种情况下,如果我突出显示&#34; test&#34;然后单击我的&#34;删除跨度&#34; &#34; Formats&#34;下的按钮按钮,它的工作原理。但是,如果我强调&#34;测试&#34;,&#34;删除跨度&#34;选项变为已禁用且无效。

这似乎应该是可行的,因为TinyMCE的内置&#34;清除格式&#34;按钮适用于这种情况。

我的目标是制作一个插件(通过修改&#34;清除格式和#34;功能或制作类似的自定义按钮),清除某些格式但不清除其他格式。例如,我想删除颜色但保留强标签。

这是我的完整插件代码:

<?php


// Callback function to insert 'styleselect' into the $buttons array
function my_mce_buttons_2( $buttons ) {
    array_unshift( $buttons, 'styleselect' );
    return $buttons;
}
// Register our callback to the appropriate filter
add_filter('mce_buttons_2', 'my_mce_buttons_2');

// Callback function to filter the MCE settings
function my_mce_before_init_insert_formats( $init_array ) {  
    // Define the style_formats array
    $style_formats = array(  
        // Each array child is a format with it's own settings
        array(  
            'title' => 'Remove spans',  
            'selector' => 'span', 
            'remove' => 'all'
        ),
    );  
    // Insert the array, JSON ENCODED, into 'style_formats'
    $init_array['style_formats'] = json_encode( $style_formats );  

    return $init_array;  

} 
// Attach callback to 'tiny_mce_before_init' 
add_filter( 'tiny_mce_before_init', 'my_mce_before_init_insert_formats' );  

?>

0 个答案:

没有答案