Автоматическая подстановка тегов в шорткоды в WordPress может быть не всегда желательной, особенно если вам нужно использовать определенный HTML-код или обозначения внутри шорткода. Вот несколько способов, как избавиться от автоматической подстановки тегов в шорткоды в WordPress.
1. Использование атрибута "raw" в шорткоде:
Возможно, вы уже знаете, что в шорткоде есть определенные атрибуты, которые можно использовать для настройки его поведения. Один из таких атрибутов - "raw" (прямой), который позволяет отключить автоматическую подстановку тегов. Для использования этого атрибута вам нужно включить следующий код в функцию, определяющую ваш шорткод:
function my_shortcode_function($atts, $content = null) { $content = wpautop($content); // отключаем автоматическую подстановку тегов return $content; } add_shortcode('my_shortcode', 'my_shortcode_function');
В приведенном выше примере my_shortcode
- это имя вашего шорткода, а my_shortcode_function
- это имя функции, которую вы определили для обработки шорткода. Обратите внимание, что мы используем wpautop
для отключения автоматической подстановки тегов.
2. Использование плагина:
Еще один способ избавиться от автоматической подстановки тегов в шорткоды в WordPress - использовать плагин. На рынке существует целый ряд плагинов, которые позволяют контролировать поведение шорткодов и отключать автоматическую подстановку тегов. Один из таких плагинов - "Shortcodes Ultimate". Установите этот плагин и выберите необходимые настройки для вашего шорткода.
3. Использование фильтра do_shortcode_tag
:
Третий способ - использование фильтра do_shortcode_tag
. Вы можете вмешаться в процесс обработки шорткодов и изменить поведение автоматической подстановки тегов. Вот пример кода, который позволит отключить автоматическую подстановку тегов для всех шорткодов:
function disable_shortcode_autop($output, $tag) { global $shortcode_tags; if (isset($shortcode_tags[$tag]) && is_callable($shortcode_tags[$tag])) { remove_filter('the_content', $shortcode_tags[$tag]); add_filter('the_content', $shortcode_tags[$tag], 11); } return $output; } add_filter('do_shortcode_tag', 'disable_shortcode_autop', 10, 2);
Этот код удаляет фильтр wpautop
, который обрабатывает автоматическую подстановку тегов, и добавляет его снова, но с более низким приоритетом (11), чтобы он не взаимодействовал с вашими шорткодами.
Надеюсь, этот ответ поможет вам избавиться от автоматической подстановки тегов в шорткоды в WordPress.