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.9.1
function remove_shortcode( $tag ) {
global $shortcode_tags;
unset( $shortcode_tags[ $tag ] );
}