От доста време използвам WordPres плъгин, който ми осигуряваше различни стилови елементи в статиите като бутони, разделители, цветни боксове и т.н. Реших обаче да се отърва от него в полза на още по-високата скорост на зареждане на сайта. А и вече доста от стиловото оформление можех да си правя ръчно с помощта на CSS.
Какъв обаче беше проблема?
В lifehack,bg към момента на написването на този материал има над 800 статии. В над 80% от тях са използвани въпросните стилови елементи чрез „shortcodes“!

Но плъгина, който ги подсигуряваше не работи – изключих го, а тези малки парченца код вече не са активни – на тяхно място се виждаше нещо подобно на „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“ отново ще се изобразят елементите, стоящи зад тях.
Надявам се този трик да ви бъде полезен!








