WordPress как на ладони

Форматирование записей без обрамления тегами p

  1. Создавая статью в визуальном редакторе TinyMCE он автоматически обрамляет все, что написано с новой строки тегами <p></p> .
  2. При этом, перед сохранением записи в базу данных он эти теги удаляет, и в базе статья хранится без тегов <p></p>.
  3. При выводе записи, Вордпресс считывает текст статьи из базы данных и заново обрамляет ее тегами <p></p>, где считает нужным.

Вот три костыля, на которых работает это решение.

Чтобы удалить костыль №3:

Чтобы отключить добавление тегов при выводе записи, нужно добавить фильтр в functions.php :

/* Отключаем добавление тегов <p></p> к записям при выводе */ 
remove_filter( 'the_content', 'wpautop' );

Теперь нужно добиться, чтобы в базу данных сохранялась корректная запись (чтобы редактор не добавлял и не затирал теги).

Костыли №1 и №2 можно обойти следующим образом:
Переключиться в режим редактирования записи в виде HTML-текста, и больше не переключаться в режим Визуального редактора. Тогда запись сохраняется со всеми введенными тегами.

Подскажите, как решить эту проблему: как решить костыли №2 и №3? Я хочу, чтобы визуальный редактор не добавлял теги

при вводе текста, и не удалял их при сохранении записи в БД.

0
Гость
8.2 года назад
  • 0
    Kama9618

    Реально визуальный редактор ничего не добавляет... Он просто должен отображать как-то переносы строк, и поэтому он их добавляет для отображения. В HTML редакторе ничего не добавляется, поэтому когда вы сохраняете запись она в БД попадает без этих тегов.

    За правильное оформление, добавление <br> и <p> отвечает функция wpautop() вы о ней упомянули уже.

    Теперь нужно добиться, чтобы в базу данных сохранялась корректная запись (чтобы редактор не добавлял и не затирал теги).

    Что значит корректная запись? Виз редактор только может удалить недопустимые теги...

    В базу данных должна сохраняться строка без лишних тегов, так удобнее поверьте!

    Вы свою проблему так и не описали, что вам нужно чтобы не удалялось и зачем вам нужно то, что уже и так работает?..

    Возможно вам стоит посмотреть в сторону этого хука, чтобы установить HTML редактор по умолчанию http://wp-kama.ru/hook/wp_default_editor

    ЯГость 8.2 года назад
    1. Зачем-то TinyMCE сохраняет записи в БД без обрамляющих тегов p. Хоть убейте, не вижу ни одной убедительной причины это делать.
    2. Проблему решил следующим образом: установил CKEditor вместо дефолтной Тины. CKEditor сохраняет в БД запись так, как вы ее форматируете в редакторе, ничего не затирает, не добавляет мусорные классы к фотографиям и вообще чисто субъективно работает стабильнее.
    3. Если кому все-таки хочется использовать TinyMCE, то его я тоже немного перевоспитал, смотрите по ссылке http://htmlforum.ru/index.php?showtopic=55072&p=368506
    Андрей WPM 4.5 лет назад

    Виз редактор только может удалить недопустимые теги

    А как можно запретить ему это делать? Просто проблема то насущная. Например, нужно прям в статье внедрить микроразметку, в текстовом всё нужное обернул в спаны с нужными itemprop, переключился на визуальный всё слетело к чертям. Второй день ищу информацию, так и не могу найти.

    Kama 4 года назад

    Попробуй сделать все как в этой статье, только используй глобальную переменную $allowedposttags.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация