ビジュアルモードとテキストモードを切り替えたりしたときに、spanタグが消されてしまうってのはWordPressでよくある話で…

よくあるってのは困りものなんですけど

TinyMCE を使っている場合は、tiny_mce_before_initフィルターを使ってあっさりすっきり解決できます。

以下のコードを function.php にぶちこみます

function my_tiny_mce_before_init( $init_array ) {
    $init_array['valid_elements']          = '*[*]';
    $init_array['extended_valid_elements'] = '*[*]';

    return $init_array;
}
add_filter( 'tiny_mce_before_init' , 'my_tiny_mce_before_init' );

これだけす