remove_shortcode()
Удаляет зарегистрированный шорткод.
Удалять шорткоды нужно как можно позднее, в идеале до того как будет выводиться какой-либо контент. Шорткоды WP регистрируются очень рано, еще до события plugins_loaded. Шорткоды плагинов обычно также регистрируются рань до события init.
Чтобы удалить шорткоды из текста, используйте strip_shortcodes().
Хуков нет.
Возвращает
null
. Ничего не возвращает.
Использование
remove_shortcode( $tag );
- $tag(строка) (обязательный)
- Название шоткода, обработчик которого нужно удалить.
Примеры
#1 Удалим шорткод gallery
По умолчанию в WordPress используется шоткод [gallery], который выводит галерею. Давайте удалим обработчик этого шоткода, для этого перед выводом контента вставим такой код:
remove_shortcode('gallery'); the_content();
#2 Вообще отключим шорткод [[gallery]]
Если, например, вставить в functions.php
remove_shortcode( 'gallery' );
то при просмотре записи, в контенте шорткод не будет обработан и будет выведен как есть:
[gallery ids="375,291,166"]
Заметка: в админке, в виз. редакторе, галерея будет поддерживаться...
#3 Отключаем шорткод и вырезаем его остатки из контента записи
Есть шорткод myshortcode нам нужно его отключить и вырезать все его варианты из контента записи.
Для вырезания используем хук the_content фильтр.
add_action( 'init', 'remove_and_strip_shortcode' ); function remove_and_strip_shortcode() { // удаляем remove_shortcode( 'myshortcode' ); $fn__strip_myshortcode = function( $content ){ // вырежет: [myshortcode] и [myshortcode ids="132,2154,548"] $content = preg_replace( '~\[myshortcode[^\]]*\]~', '', $content ); // вырежет: [myshortcode] data [/myshortcode] $content = preg_replace( '~\[(myshortcode)[^\]]*\].*?\[\/\]~s', '', $content ); return $content; }; // вырезаем add_filter( 'the_content', $fn__strip_myshortcode, 5 ); }
Заметки
- Global. Массив. $shortcode_tags
Список изменений
С версии 2.5.0 | Введена. |
Код remove_shortcode() remove shortcode WP 6.4.3
function remove_shortcode( $tag ) { global $shortcode_tags; unset( $shortcode_tags[ $tag ] ); }