WordPress: искажение кода в блоке с подсветкой синтаксиса

Столкнулся с неприятной ситуацией, настраивая WordPress. Блоки, в которых выводится исходный код, отображались по-разному в самом посте и на главной странице. Причём отображение касалось не только внешнего вида. Искажался сам код. А это уже серьёзнее, т.к. могло ввести в заблуждение читателей. Сразу скажу: галочка «Параметры → Написание → WordPress должен исправлять некорректный XHTML-код автоматически» у меня снята.

Например, вот вид одного и того же кода из поста про два приложения на одном телефоне. Внутри записи:

<manifest
android:versioncode="20110420"
android:versionname="1.8.0"
package="ru.e_num.test"
xmlns:android="http://schemas.android.com/apk/res/android">

И на главной странице:

<manifest android:versioncode="20110420"
android:versionname="1.8.0"
package="ru.e_num.test"
xmlns:android="http://schemas.android.com/apk/res/android"></manifest>

Как видите, отличия значительны: на главной странице первые две строки слепились, из-за этого выделяться стала не та строка, а в конец кода добавился закрывающий тег </manifest>, которого там не было.

Причём проблема возникала не на каком-то одном плагине. Я пробовал и WP-Syntax, и CodeColorer (в пользу которого, кстати, сделал выбор среди плагинов для подсветки синтаксиса).

Признаюсь, причину болезни я не нашёл. Однако симптомы можно лечить двумя путями:

  1. Не использовать блоки с подсветкой синтаксиса до ката (тега <!--more-->).
  2. Принудительно включать режим escaped и заменять угловые кавычки < > на &lt; &gt;

Второй вариант можно включить в WP-Syntax с помощью <pre>, а в CodeColorer — <code>, [cc escaped="true"] или [cce].

Кто знает истинную причину проблемы, сообщите, пожалуйста. Хотелось бы исправить ситуацию без «костылей».

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *