При смене темы оформления WordPress вебмастер может столкнуться с проблемой неработающих шорткодов, которые он
использовал в предыдущих темах. В этом случае у него два выхода — либо внедрять шорткоды из предыдущей темы, что не
всегда подходит, так как они могу не соответствовать новой концепции и оформлению, либо каким-то образом скрыть
шорткоды на страницах постов. Первое — это дело времени и желания, но и без этого можно обойтись, если реализовать
второе.
Плагины
Альтернативным коду методом является использование плагинов. Плагинов, которые удаляют неиспользуемые шорткоды,
несколько, самыми популярными из них является
Hide
Broken Shortcodes — плагин проверяет, какие шорткоды зарегистрированы в используемой теме и плагиных, и
скрывает остальные, найденные к содержимом постов, но неиспользуемые.
База данных
Можно найти и удалить неиспользуемые шлоткорды прямо в базе данных, используя регулярные выражения. Для этого
воспользуйтесь плагином
Search
Regex.
Код
Для того, чтобы удалить неиспользуемый шорткод из содержимого постов, достаточно в файл functions.php добавить
remove_shortcode('[shortcode]');
Например, чтобы удалить шорткод gallery из постов, нужно добавить
remove_shortcode('gallery');
Правильный метод
У всех вышеперечисленных методов есть один существенный недостаток — они удаляют шорткод, но не удаляют содержимое
шорткода. То есть после их применения остаются части непонятного текста без оформления, не имеющего никакой
ценности. Чтобы скрыть не только сам шорткод, но и его содержимое, нужно переопределить неиспользуемый шорткод в
файле functions.php таким образом, чтобы он существовал, но ничего не выводил. делается это так:
add_shortcode('shortcode', '__return_empty_string');
Этот код не уничтожает неиспользуемый шорткод, однако он вместо содержимого шорткода ничего не выводит.