Еще попробуйте добавить это
remove_filter('the_content', 'wptexturize');
Но и это иногда его не отучивает, наверно потому, что исключение этих фильтров не работает на сохранении записи/страницы в базу (при переключении между визуальным режимом и режимом html в редакторе), а только на выдаче их из базы, но если в базу оно уже его отредактировало, то конечно не спасет..
Когда то на просторах интернета нашел такой сниппет
function my_formatter($content) {
$new_content = '';
$pattern_full = '{(\[raw\].*?\[/raw\])}is';
$pattern_contents = '{\[raw\](.*?)\[/raw\]}is';
$pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);
foreach ($pieces as $piece) {
if (preg_match($pattern_contents, $piece, $matches)) {
$new_content .= $matches[1];
} else {
$new_content .= wptexturize(wpautop($piece));
}
}
return $new_content;
}
add_filter('the_content', 'my_formatter', 99);
но использую только на тех сайтах которые оставляю на сопровождении за собой. Чтобы использовать необходимо
1. Редактировать страницы, посты только в режиме html
2. Обрамлять весь html-код страницы в шорт-код [raw] ... [/raw]
Много условностей,.. но начиная с Wordpress 2.7 этот подход не подводил, и позволял в особо критичных местах полностью управлять содержимым страницы/поста.
Сам с удовольствием почитаю более гуманный способ отучивания wordpress пакостить с моим plain html (теги, пробелы, классы).