Как да премахнете неактивните [shortcodes] в WordPress сайта ви само за 30 секунди

wordpress ,софтуер ,shortcodes

От доста време използвам WordPres плъгин, който ми осигуряваше различни стилови елементи в статиите като бутони, разделители, цветни боксове и т.н. Реших обаче да се отърва от него в полза на още по-високата скорост на зареждане на сайта. А и вече доста от стиловото оформление можех да си правя ръчно с помощта на CSS.

Какъв обаче беше проблема?

В lifehack,bg към момента на написването на този материал има над 800 статии. В над 80% от тях са използвани въпросните стилови елементи чрез “shortcodes”!

shortcode

Но плъгина, който ги подсигуряваше не работи – изключих го, а тези малки парченца код вече не са активни – на тяхно място се виждаше нещо подобно на “sws_divider_line“, което можеше да смути много от нашите потребители /някои от тях вече ни сигнализираха/.

В първия момент си помислих:

Сега Христо трябва да минеш през всички над 1300 статии (една по една) и да премахнеш всеки неактивен код, който е оставил плъгина, който си деактивирал.

Направо ми се дорева при мисълта, че трябва да мина през всичко това.

Но нямаше да включа плъгина отново, исках сайта да зарежда по-бързо, а WordPress плъгините да са възможно най-малко.

Затова искам не искам започнах ръчното премахване.

На десетата страница от статии направо ми писна.

Зарових се в интернет, за да намеря друго решение, това просто не беше опция – да прекарам почивните си дни в премахване на хиляди малки гадни редчета код…

Както Уил Смит беше казал: Няма проблем, който да не е описан в някоя книга.“, така и в този случай се оказа, че няма проблем, който да не е описан в интернет.

В крайна сметка намерих страхотен вариант, който решаваше целия този проблем само за 30 секунди и то напълно автоматично – без да има нужда от ръчна намеса!

Не може да си представите какво щастие изпитах, когато го тествах и видях, че работи отлично. Да, почувствах се и малко прецакан, че си играх да оправя ръчно толкова много статии, но това вече не беше от голямо значение…

Останалите 500 и кусур се оправиха напълно автоматично и тези кратки кодове вече не се показваха пред очите на читателите на lifehack.bg

Ето и решението:

За да се отървем от всички излишни и неработещи “shortcodes” от деактивирани плъгини, на един път, без ръчна намеса за всяка статия, просто трябва да направим следното.

  • Отворете администрацията на WordPress сайта си
  • Отидете в Apperance → Editor
  • Там намерете файла function.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; 
}

Накрая проверете статиите си /не в редактора, а на живо/, в които знаете, че трябва да се изобрази някой от използваните [shortcodes] и ще видите, че вече ги няма!

Това, което прави тази функция е да изключи неактивните вече кодове от неработещите плъгини, а не да ги премахне перманентно. Това е добре, тъй като следващия път, когато активирате плъгина, “shortcodes” отново ще се изобразят елементите, стоящи зад тях.

Надявам се този трик да ви бъде полезен!

Възстанови паролата:

Логни се в
Мастърхак
СПЕСТИ 300 лв и вземи 3 нови БОНУСА на стойност 190 лв...
0
дни
0
часа
0
минути
0
секунди

Спести 300 лв и вземи 3 нови БОНУСА на стойност 190 лв...