Под "текстом поста" понимается то, что вы видите при нажатии кнопки "редактировать", если у вас отключены все визуальные редакторы.
***
После перехода на новый движок некоторые заметили, что не так-то просто написать знаки "больше" и "меньше" в тексте. Они могли пропадать, могли портить остальное форматирование, а могли и отображаться нормально. При этом со знаком "меньше" проблем было БОЛЬШЕ. В чём же дело?
Эти знаки, находящиеся внутри постов, переходили в HTML-вывод "как есть". А в HTML эти знаки обозначают разметку. Если эти знаки стоят в тексте, то при неудачном расположении они могут быть восприняты как (ошибочные) теги.
Раньше в дайари работала хтмл-подстановка. Можно в тексте поста вместо < было написать &lt; Тогда в выходную страницу вместо знака попадала подстановка, которая не опознавалась как тег. Вместо этого она преобразовывалась в символ "меньше", причём делал это браузер. Но в исходном коде страницы было видно, что там написано "&lt;".
Разработчики дайари на новом движке подложили пользователям небольшого поросёнка. Теперь если вы пишете в тексте поста &lt;, то это сохраняется как есть (при редактировании поста вы видите эти символы). Но при выдаче поста хтмл-подстановки раскрываются самим движком дайари!
И в исходный код страницы вместо &lt; попадает просто символ "меньше", которого там быть не должно. Таким образом старый (и законный) метод борьбы больше не работает. Можно ли с этим что-то сделать?
Долгое врем я думал, что нельзя. Пока не открыл таблицу хтмл-подстановок. ОКАЗАЛОСЬ, что:
1. Не только "больше" и "меньше" имеют подстановки. Есть много других символов!
2. Дайари при чтении поста из базы преобразовывает не только "больше" и "меньше".
Итак, задача. Написать такой текст, чтобы на выходе получить последовательность символов &lt;
В списке подстановок мы находим:
&amp; -- &
Вот и решение. Изначальный амперсанд может быть заменен на подстановку, таким образом дайари заменит только её, оставив часть lt; в покое.
То есть,
1. мы пишем в посте &amp;lt; ,
2. которое дайари преобразует при загрузке страницы в &lt; ,
3. которое браузер отображает как <
Я теперь даже такое могу писать: <b>strong</b> и это не будет преобразовано.