Неиспользуемые шорткоды в WordPress часто остаются после удаления плагинов или тем и могут замедлять работу сайта, приводить к ошибкам в отображении контента и усложнять дальнейшее администрирование. В этой статье рассмотрим, как найти и удалить такие шорткоды, а также оптимизировать код сайта для их корректного удаления.
Почему важно удалять неиспользуемые шорткоды в WordPress
Шорткоды — это удобный способ вставлять динамический контент в записи и страницы. Однако при деактивации или удалении плагинов, которые их добавляли, сами шорткоды остаются в базе данных и отображаются в виде текста, например [example_shortcode]. Это ухудшает пользовательский опыт и негативно влияет на SEO.
Кроме того, такие шорткоды могут создавать нагрузку на парсер WordPress, особенно если их много. Поэтому своевременное удаление или замена неиспользуемых шорткодов — важный аспект оптимизации сайта.
Как найти неиспользуемые шорткоды на сайте
Для начала нужно определить, какие шорткоды есть на сайте и какие из них не используются или устарели. Рассмотрим несколько способов:
1. Поиск по базе данных
Самый точный метод — выполнить SQL-запрос для поиска всех записей, содержащих квадратные скобки, характерные для шорткодов:
SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%[%]%';После этого можно проанализировать, какие именно шорткоды встречаются, и проверить, какие из них активны на сайте.
2. Использование плагинов для анализа контента
Плагины вроде Shortcode Checker позволяют быстро найти все шорткоды, задействованные на страницах и записях. Это удобно для визуального анализа и быстрой идентификации устаревших шорткодов.
3. Поиск в редакторе WordPress
Если контента немного, можно использовать стандартный поиск в редакторе Gutenberg или классическом редакторе, вводя квадратные скобки и названия известных шорткодов.
Методы удаления неиспользуемых шорткодов
Если вы точно уверены, что определённый шорткод больше не нужен, его можно удалить несколькими способами.
1. Отключение обработчика шорткода
Если шорткод был зарегистрирован, но плагин удалён, в базе останется текст шорткода, который выводится как есть. Чтобы избежать этого, можно зарегистрировать пустую функцию-обработчик, которая будет заменять шорткод на пустую строку.
function wpbook_remove_unused_shortcode($atts, $content = null) {
return '';
}
add_shortcode('old_shortcode', 'wpbook_remove_unused_shortcode');Таким образом, вы не удаляете содержимое из базы, но вывод на сайте перестанет показывать шорткод.
2. Программное удаление шорткодов из контента
Если нужно очистить контент записей, можно написать скрипт, который удалит строки с шорткодами из базы данных. Ниже пример функции, которая удаляет указанный шорткод из всех записей:
function wpbook_delete_shortcode_from_posts($shortcode) {
global $wpdb;
$like = '%[' . $wpdb->esc_like($shortcode) . '%';
$posts = $wpdb->get_results($wpdb->prepare("SELECT ID, post_content FROM {$wpdb->posts} WHERE post_content LIKE %s", $like));
foreach ($posts as $post) {
$pattern = get_shortcode_regex();
$new_content = preg_replace('/' . $pattern . '/s', '', $post->post_content);
$wpdb->update(
$wpdb->posts,
['post_content' => $new_content],
['ID' => $post->ID]
);
}
}
// Использование:
wpbook_delete_shortcode_from_posts('old_shortcode');Этот код ищет и удаляет все вхождения шорткода [old_shortcode] из записей. Обязательно сделайте резервную копию базы перед применением.
3. Использование плагинов для очистки шорткодов
Плагины вроде Shortcode Cleaner помогают автоматически находить и удалять неиспользуемые шорткоды. Это удобно, если вы не хотите писать код самостоятельно.
Советы по предотвращению появления неиспользуемых шорткодов
1. Используйте Clearfy Pro для автоматической оптимизации
Плагин Clearfy Pro содержит инструменты для очистки базы данных и управления шорткодами, что помогает предотвратить появление «мертвых» шорткодов.
2. Удаляйте шорткоды перед деактивацией плагина
Если вы разрабатываете плагин с шорткодами, предусмотрите функцию удаления шорткодов из контента при деактивации. Это сохранит чистоту базы.
3. Используйте динамические и универсальные шорткоды
Разрабатывайте шорткоды так, чтобы они могли gracefully fallback — показывать альтернативный контент или пустую строку, если функциональность плагина отсутствует.
Пример создания универсального обработчика для нескольких шорткодов
Если на сайте много устаревших шорткодов, можно зарегистрировать один обработчик, который будет «глушить» их все:
function wpbook_disable_unused_shortcodes($atts, $content = null) {
return '';
}
$unused_shortcodes = ['old_shortcode1', 'old_shortcode2', 'old_shortcode3'];
foreach ($unused_shortcodes as $sc) {
add_shortcode($sc, 'wpbook_disable_unused_shortcodes');
}Так вы быстро избавитесь от некорректного отображения без удаления из базы.
Заключение
Удаление неиспользуемых шорткодов — важная часть поддержки WordPress-сайта, особенно если на нём часто меняются плагины и темы. Используйте комбинированный подход: найдите устаревшие шорткоды, отключите их обработчики, а при необходимости удалите из контента программно. Для автоматизации и оптимизации советуем обратить внимание на Clearfy Pro, который упростит работу с базой данных и шорткодами.