How to disable TinyMCE from removing span tags

[*]

I am posting Word generated HTML to WordPress via XMLRPC. Before I go to post.php, the format is correctly preserved in the database. TinyMCE performs its magic and I lose quite a few formatting details.
The main issue i am seeing is that <span> tag with style information surrounding other elements are stripped out. I have verified that these tags are indeed removed by TinyMCE and not Kses.
Is there a way to prevent TinyMCE from altering the HTML? I have tried

add_filter('tiny_mce_before_init', 'tinymce_init');

function tinymce_init( $init ) {
    $init['extended_valid_elements'] .= ', span[style|id|nam|class|lang]';
$init['verify_html'] = false;
    return $init;
}

which didn’t help. According to TinyMCE documentation, “verify_html”

This option enables or disables the element cleanup functionality. If you set this option to false, all element cleanup will be skipped but other cleanup functionality such as URL conversion will still be executed.

3

[*]

I couldn’t find the extended_valid_elements option in the settings panel for TinyMCE advanced, but adding the following to my functions.php solved it:

function override_mce_options($initArray) {
    $opts="*[*]";
    $initArray['valid_elements'] = $opts;
    $initArray['extended_valid_elements'] = $opts;
    return $initArray;
} add_filter('tiny_mce_before_init', 'override_mce_options');

Source

Leave a Comment