Форматирование записей без обрамления тегами p
- Создавая статью в визуальном редакторе TinyMCE он автоматически обрамляет все, что написано с новой строки тегами <p></p> .
- При этом, перед сохранением записи в базу данных он эти теги удаляет, и в базе статья хранится без тегов <p></p>.
- При выводе записи, Вордпресс считывает текст статьи из базы данных и заново обрамляет ее тегами <p></p>, где считает нужным.
Вот три костыля, на которых работает это решение.
Чтобы удалить костыль №3:
Чтобы отключить добавление тегов при выводе записи, нужно добавить фильтр в functions.php :
/* Отключаем добавление тегов <p></p> к записям при выводе */ remove_filter( 'the_content', 'wpautop' );
Теперь нужно добиться, чтобы в базу данных сохранялась корректная запись (чтобы редактор не добавлял и не затирал теги).
Костыли №1 и №2 можно обойти следующим образом:
Переключиться в режим редактирования записи в виде HTML-текста, и больше не переключаться в режим Визуального редактора. Тогда запись сохраняется со всеми введенными тегами.
Подскажите, как решить эту проблему: как решить костыли №2 и №3? Я хочу, чтобы визуальный редактор не добавлял теги
при вводе текста, и не удалял их при сохранении записи в БД.
Реально визуальный редактор ничего не добавляет... Он просто должен отображать как-то переносы строк, и поэтому он их добавляет для отображения. В HTML редакторе ничего не добавляется, поэтому когда вы сохраняете запись она в БД попадает без этих тегов.
За правильное оформление, добавление <br> и <p> отвечает функция wpautop() вы о ней упомянули уже.
Что значит корректная запись? Виз редактор только может удалить недопустимые теги...
В базу данных должна сохраняться строка без лишних тегов, так удобнее поверьте!
Вы свою проблему так и не описали, что вам нужно чтобы не удалялось и зачем вам нужно то, что уже и так работает?..
Возможно вам стоит посмотреть в сторону этого хука, чтобы установить HTML редактор по умолчанию http://wp-kama.ru/hook/wp_default_editor
А как можно запретить ему это делать? Просто проблема то насущная. Например, нужно прям в статье внедрить микроразметку, в текстовом всё нужное обернул в спаны с нужными itemprop, переключился на визуальный всё слетело к чертям. Второй день ищу информацию, так и не могу найти.
Попробуй сделать все как в этой статье, только используй глобальную переменную $allowedposttags.