Отключаем автозамену кавычек в WordPress текстах и не только
Недавно в блоге я увидел некорректно отображающиеся кавычки в тексте, когда закрывающий и открывающие символы были направлены в одну сторону. Оказывается, что все кавычки, добавляемые мной через англоязычную раскладку (вот такие — ") также автоматически заменялись. Подобные преобразования проходят с дефисами, одинарными кавычками, многоточиями и т.п. Видимо, сделано это чтобы на сайте контент отображался в более красивом виде, но, мне кажется, не всегда это уместно. Поэтому сегодня разберемся как отключить данную автозамену.
На сайте кодекса есть полный список символов, участвующих в замене:
Некоторые значения могут меняться в зависимости от локализации, например, для русскоязычного текста будут отображаться двойные угловые скобки.
За преобразование отвечает специальный фильтр wptexturize(). Он выполняется на этапе публикации контента, поэтому в текстовом редакторе внутри админки все будет выглядеть отлично (а во фронтенде – совсем другое дело).
Функция wptexturize воздействует на целый ряд других фильтров:
Здесь, как видите, и текст заметки, и заголовок, и названия категорий, виджеты и многое другое.
Тем не менее, в ходе обработки пропускаются (не участвуют) следующие теги: <pre>, <code>, <kbd>, <style>, <script>, and <tt>. Также игнорируется конструкция шорткода [code]. Однако, если вам нужно изменить такой порядок работы – можете использовать фильтры ‘no_texturize_tags’, ‘no_texturize_shortcodes’.
Как отключить замену кавычек в тексте
Тут есть несколько вариантов.
1. Самый примитивный метод – это, конечно, переключиться в режим редактирования HTML и вводить в тексте коды соответствующих символов, например, чтобы получить двойную кавычку (") используйте значения " или " (а для одинарной — ' или '). Кроме того, есть и такие варианты:
Но это неудобно и достаточно хлопотно.
2. С помощью лишь одной строки в файле functions.php реально отключить все преобразования:
add_filter( 'run_wptexturize', '__return_false' ); |
3. Также допускается отключение замены Вордпресс кавычек для отдельных ситуаций, например:
remove_filter('the_title', 'wptexturize'); remove_filter('the_content', 'wptexturize'); remove_filter('comment_text', 'wptexturize'); remove_filter('the_excerpt', 'wptexturize'); |
В этом коде видите функции вывода заголовков, блока контента, комментариев и анонсов. Если хотите отключить автозамену в одном из них – добавляйте соответствующую строку в файл функций. На картинке чуть выше отображается список всех доступных фильтров.
Небольшой лайфхак. После отключения определенных преобразований, вы можете создавать собственные правила (через add_filter), где использовать некую новую функцию ‘my_new_wptexturize’, в которой с помощью str_replace устанавливаете свои варианты замены символов в строках.
4. Традиционно в системе должен существовать плагин, подходящий для данной задачи. Из трех небольших решений самым интересным является Wpuntexturize от Scott Reilly.
Однако, насколько я понимаю, данный модуль предотвращает автоматическое преобразование только(!) одинарных и двойных кавычек в фигурные. Все остальные символы, обрабатываемые wptexturize, — остаются не тронутыми. Поправьте меня, если я не прав.
Тем не менее, в модуле есть целый ряд интересных фильтров (ищите их описание в репозитории), которые позволяет значительно улучшить работу стандартных методов, например:
- wpuntexturize_filters – позволяет указывать какие именно функции (элементы заголовка, анонса, текста) будут избавлены от преобразований.
- c2c_wpuntexturize_replacements – еще лучше! С его помощью реально выбрать символы, которые будут трансформироваться, а какие нет.
Второй вариант вообще супер – именно то, что мне было нужно. Но, к сожалению, все мои попытки запустить в работу данный плагин не увенчались успехом.
Итого. Изначально я просто хотел убрать замену кавычек на скобки и уже обрадовался хаку с удалением фильтра wptexturize из всех важных текстовых элементов. Однако в итоге выяснилось, что этот метод удаляет также преобразование дефисов в тире, что мне не совсем подходит. Отличным решением мог оказаться рассмотренный плагин, но увы, он у меня так и не заработал. Возможно, я что-то делал не так – если вы уже использовали этот модуль, пишите советы в комментариях. Ну, и вдруг знаете какой-то альтернативный подход.
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Як сховати відсутні товари в Woocommerce шорткодах та схожих товарах
- Сервіс AdMaven + плагін для монетизації трафіка на WordPress сайтах
- Плагіни для створення стрічки новин з біжучим рядком в WordPress
- Як змінити розміщення кнопки оформлення замовлення в WooCommerce
- Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими
- Підписка MonsterONE: чи варто використовувати цей сервіс у 2023 році? (+5 продуктів, які треба скачати в першу чергу)
- Онлайн генератор ссылок на мессенджеры для WordPress и не только
- WooCommerce (46)
- Безопасность (12)
- Видео (6)
- Виджеты (28)
- Возможности (141)
- Вопрос-ответ (6)
- Начинающим (52)
- Новости (46)
- Оптимизация (23)
- Плагины (246)
- Сервисы (87)
- Хаки и секреты (87)
- Шаблоны (45)
- Записи и посты wordpress, оформление записи (5,91 из 7, голосов - 47)
- Проблема с адаптивными изображениями в Gutenberg редакторе WordPress (3,87 из 7, голосов - 45)
- Умный копирайт в footer.php для wordpress (5,63 из 7, голосов - 30)
- Обновление плагинов и тем в WordPress: автоматическое, через FTP, скрытие уведомлений (5,19 из 7, голосов - 31)
- Polylang — плагин для мультиязычных сайтов на нескольких языках в WordPress (4,42 из 7, голосов - 31)
- Плагин TinyMCE Advanced – wordpress текстовый редактор (6,35 из 7, голосов - 20)
- Рубрики и категории wordpress, функция wp_list_categories (6,05 из 7, голосов - 20)
- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- Советы по выбору холодильника LG с технологией No Frost
- Зачем нужны Wi-Fi ретрансляторы и как выбрать подходящую модель
- Введение в онлайн-казино Slotor777: многообразие игр и привлекательные бонусы
- Необходимость использования облачного хранилища в наше время, что важно и как выгодно?
- Спрощення процесу звітності за допомогою програми BAS Бухгалтерія
- Технологія підключення інтернету GPON та її переваги
- За що гравці найбільше цінують Lineage 2
- Для каких проектов нужна аренда виртуального сервера и что такое VPS