ГлавнаяЛайфстайлИнтернетКак удалить неиспользуемый шорткод из сообщений

Как удалить неиспользуемый шорткод из сообщений [WordPress]

В WordPress, если вы использовали множество плагинов, вы наверняка встретите несколько, которые требуют, чтобы вы поместили в сообщение короткий код, например [shortcode_1], чтобы он работал. Использование шорткода может быть хорошим способом добавить функциональность вашему сайту, но когда вы деактивируете плагин, шорткод из вашего контента не удаляется, а отображается во внешнем интерфейсе в необработанном виде.

Вот как это выглядит в необработанном виде:

короткий код не отображается

Есть несколько способов удалить неиспользуемый шорткод с вашего сайта:

1. Удалить шорткод из базы данных

Если вы знаете, какой именно короткий код вы хотите удалить, и хотите навсегда удалить его из своей базы данных, вы можете просто выполнить SQL-запрос с помощью следующей команды:

UPDATE wp_post SET post_content = REPLACE(post_content, '[shortcodename]', '' ) ;

Замените «shortcodename» на короткий код, который вы хотите удалить.

Примечание. Это не надежный метод, поскольку разные короткие коды могут иметь разные атрибуты и значения, что затрудняет формирование универсального SQL-запроса.

2. Замените шорткод пустым значением

Если вы знаете, какой шорткод удалить, но не хотите удалять его навсегда, вы можете вместо этого заставить его отображать пустое значение. Вставьте следующий код в конец файла functions.php(перед тегом ?>) в папке вашей темы.

add_shortcode('shorcodename', 'mte_return_empty_shortcode');
function mte_return_empty_shortcode(){
	return '';
}

Замените «shorcodename» коротким кодом, который хотите удалить.

Примечание. Это хороший метод, только если вы знаете, какой шорткод собираетесь удалить. Вы также должны убедиться, что короткий код больше не активен, иначе это может привести к конфликту.

3. Удалите из контента все неиспользуемые короткие коды (рекомендуется)

Если у вас есть несколько шорткодов, которые вы больше не используете, и вы не можете запомнить все названия шорткодов, вот лучший способ отключить все неиспользуемые шорткоды в вашем контенте.

Вставьте код в конец functions.phpнепосредственно перед тегом ?>.

add_filter('the_content', 'mte_remove_unused_shortcode');
function mte_remove_unused_shortcode($content)
{	$pattern = mte_get_unused_shortcode_regex();
	$content = preg_replace_callback( '/'. $pattern .'/s', 'strip_shortcode_tag', $content );
	return $content;	
}
 
function mte_get_unused_shortcode_regex() {
	global $shortcode_tags;
	$tagnames = array_keys($shortcode_tags);
	$tagregexp = join( '|', array_map('preg_quote', $tagnames) );
	$regex = '\\[(\\[?)';
	$regex .= "(?!$tagregexp)";
	$regex .= '\\b([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*+(?:\\[(?!\\/\\2\\])[^\\[]*+)*+)\\[\\/\\2\\])?)(\\]?)';
	return $regex; 
}

Приведенный выше код сначала получает список всех активных коротких кодов, ищет в содержимом короткие коды, которые не соответствуют активному списку коротких кодов, и удаляет короткие коды. Он является модификацией функции get_shortcode_regex , которая проверяет активный шорткод.

Примечание. Этот метод должен работать для всех неиспользуемых коротких кодов и не удаляет короткий код навсегда. Когда вы в следующий раз повторно активируете плагин, соответствующий короткий код продолжит работать автоматически. С другой стороны, этот код удалит весь контент, заключенный между тегами «[» и «]».

ПОХОЖИЕ СТАТЬИ

Популярные записи