Со временем на вашем сайте WordPress может накопиться множество шорткодов, которые больше не используются. Это может происходить из-за удаления плагинов, изменений в теме или просто устаревших решений. Неиспользуемые шорткоды не только создают путаницу в коде, но и могут замедлять работу сайта или вызывать ошибки в отображении контента. В этой статье мы разберём, как определить неиспользуемые шорткоды и безопасно удалить их из сайта.
Почему важно удалять неиспользуемые шорткоды
Неиспользуемые шорткоды могут создавать несколько проблем:
- Появление в контенте непонятных текстов вида
[shortcode], если плагин, который их обрабатывал, удалён. - Увеличение нагрузки на парсинг контента и потенциальные ошибки в рендеринге страниц.
- Загромождение кода, что усложняет поддержку и развитие сайта.
Удаление старых и неиспользуемых шорткодов помогает сделать сайт более чистым, быстрым и удобным для поддержки.
Как определить, какие шорткоды не используются
Для начала нужно составить список всех зарегистрированных на сайте шорткодов. Сделать это можно с помощью функции wpplugin_get_all_shortcodes():
function wpplugin_get_all_shortcodes() {
global $shortcode_tags;
return array_keys($shortcode_tags);
}
Вызов этой функции вернёт массив с именами всех зарегистрированных шорткодов.
Далее необходимо проверить, какие из этих шорткодов встречаются в содержимом записей, страниц и других типов постов. Для этого можно использовать SQL-запрос или PHP-скрипт. Вот пример функции, которая проверяет наличие шорткода в базе данных:
function wpplugin_is_shortcode_used($shortcode) {
global $wpdb;
$like = '%[' . $wpdb->esc_like($shortcode) . '%';
$query = $wpdb->prepare(
"SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_content LIKE %s",
$like
);
$count = $wpdb->get_var($query);
return $count > 0;
}
С помощью цикла можно проверить все зарегистрированные шорткоды и получить список тех, которые не используются:
$all_shortcodes = wpplugin_get_all_shortcodes();
$unused_shortcodes = [];
foreach ($all_shortcodes as $shortcode) {
if (!wpplugin_is_shortcode_used($shortcode)) {
$unused_shortcodes[] = $shortcode;
}
}
Этот список — кандидаты на удаление.
Как безопасно удалить неиспользуемые шорткоды
Прежде чем удалять шорткод, убедитесь, что он действительно не используется ни в одном месте. Проверьте также динамически добавляемый контент и виджеты, где шорткоды могут применяться программно.
Удаление шорткода происходит через функцию remove_shortcode(). Например:
remove_shortcode('example_shortcode');
Рекомендуется обернуть удаление в хук init с высоким приоритетом, чтобы гарантировать, что шорткод уже зарегистрирован:
add_action('init', function() {
remove_shortcode('example_shortcode');
}, 100);
Если шорткод принадлежит плагину, удаление можно сделать в файле functions.php вашей темы или в отдельном плагине для кастомных функций.
Пример: удаляем неиспользуемые шорткоды автоматически
Можно создать WP-CLI команду или админ-скрипт, который будет выводить список неиспользуемых шорткодов и предлагать их удалить. Ниже пример реализации простой функции для удаления всех неиспользуемых шорткодов из текущего списка:
function wpplugin_remove_unused_shortcodes() {
$all_shortcodes = wpplugin_get_all_shortcodes();
foreach ($all_shortcodes as $shortcode) {
if (!wpplugin_is_shortcode_used($shortcode)) {
remove_shortcode($shortcode);
}
}
}
add_action('init', 'wpplugin_remove_unused_shortcodes', 100);
Обратите внимание, что такой подход может быть рискованным, если не учитывать все места использования шорткодов.
Как предотвратить появление неиспользуемых шорткодов в будущем
Чтобы не сталкиваться с проблемой неиспользуемых шорткодов, придерживайтесь следующих рекомендаций:
- Удаляйте плагин вместе с шорткодами. Если плагин перестаёт быть нужным, сначала удалите все записи, использующие его шорткоды, затем деактивируйте и удалите плагин.
- Используйте шорткоды осознанно. Не добавляйте шорткод в контент, если он не будет использоваться.
- Проводите ревизию контента. Регулярно проверяйте, какие шорткоды используются, и избавляйтесь от устаревших.
Полезные плагины для работы с шорткодами
Для упрощения поиска и управления шорткодами можно использовать следующие плагины:
- Shortcode Cleaner Lite — помогает находить и удалять неиспользуемые шорткоды.
- Clearfy Pro — оптимизирует работу сайта, в том числе умеет отключать лишние шорткоды и скрипты.
Резюме
Удаление неиспользуемых шорткодов — важная часть поддержки сайта на WordPress. Используя приведённые методы и примеры кода, вы сможете выявить и безопасно удалить лишние шорткоды, улучшив производительность и удобство работы с сайтом.
Если хотите глубже оптимизировать свой сайт, обратите внимание на Clearfy Pro — плагин, который поможет автоматизировать часть задач по очистке и оптимизации WordPress.