WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Платформа для конвертации и монетизации трафика

remove_shortcode() WP 2.5

Удаляет зарегистрированный шорткод.

Удалять шорткоды нужно как можно позднее, в идеале до того как будет выводиться какой-либо контент. Шорткоды WP регистрируются очень рано, еще до события plugins_loaded. Шорткоды плагинов обычно также регистрируются рань до события init.

Чтобы удалить шорткоды из текста, используйте strip_shortcodes().

Хуков нет.

Возвращает

Ничего не возвращает.

Использование

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)[^\]]*\].*?\[\/\1\]~s', '', $content );

		return $content;        
	};

	// вырезаем
	add_filter( 'the_content', $fn__strip_myshortcode, 5 );
}

Заметки

  • Global. Массив. $shortcode_tags

Список изменений

С версии 2.5.0 Введена.

Код remove_shortcode() WP 5.6.2

<?php
function remove_shortcode( $tag ) {
	global $shortcode_tags;

	unset( $shortcode_tags[ $tag ] );
}

Из раздела: Шорткоды

Danya 50
Программист фрилансер. Кодингом на PHP занимаю с 2008 года.
Редакторы: campusboy 3809, Kama 8077
2 коммента
    Войти