Шорткоды — удобный способ добавлять динамический контент в записи и страницы WordPress. Однако со временем на сайте накапливается множество неиспользуемых или устаревших шорткодов, которые могут замедлять работу сайта и создавать ошибки отображения. В этой статье мы подробно разберём, как безопасно удалить неиспользуемые шорткоды через функции темы, чтобы оптимизировать работу сайта и облегчить поддержку кода.
Почему важно удалять неиспользуемые шорткоды
При удалении плагинов или изменении функционала сайта старые шорткоды могут перестать работать, но оставаться в записях. Это приводит к появлению в контенте текста с кодом шорткода вместо нужного результата, ухудшает пользовательский опыт и SEO. Кроме того, лишние шорткоды загружают обработчик WordPress и могут вызывать конфликты с новыми плагинами.
Удаление неиспользуемых шорткодов помогает:
- Улучшить скорость загрузки страниц.
- Избавиться от предупреждений и ошибок.
- Упростить поддержку и сопровождение сайта.
- Обеспечить чистоту и понятность контента.
Как найти неиспользуемые шорткоды на сайте
Для начала нужно определить, какие шорткоды зарегистрированы и какие из них не используются. Для этого можно:
- Посмотреть список зарегистрированных шорткодов через
shortcode_exists()и глобальный массив$shortcode_tags. - Проанализировать содержимое постов на наличие шорткодов с помощью SQL-запросов или плагинов, например, Shortcode Cleaner Lite.
- Использовать поиск по базе данных с помощью phpMyAdmin, например, запросом
SELECT ID, post_content FROM wp_posts WHERE post_content LIKE '%[shortcode_name%';для каждого подозрительного шорткода.
Пример вывода всех зарегистрированных шорткодов
function wpclean_list_shortcodes() {
global $shortcode_tags;
echo '<pre>';
print_r(array_keys($shortcode_tags));
echo '</pre>';
}
add_action('wp_footer', 'wpclean_list_shortcodes');
Добавьте эту функцию в functions.php вашей темы, чтобы на каждой странице в футере вывести список активных шорткодов. После анализа удалите код.
Удаление регистрации неиспользуемых шорткодов из темы
Для удаления неиспользуемого шорткода нужно отменить его регистрацию с помощью функции remove_shortcode(). Это позволит избежать ошибок вывода на страницах с оставшимися шорткодами в контенте.
Пример удаления шорткода [old_shortcode]:
function wpclean_remove_unused_shortcodes() {
remove_shortcode('old_shortcode');
}
add_action('init', 'wpclean_remove_unused_shortcodes');
Добавьте этот код в functions.php вашей темы или в плагин для пользовательских функций.
Обработка нераспознанных шорткодов
Если в контенте остались шорткоды, которых уже нет в регистрации, WordPress по умолчанию выводит их в виде текста. Чтобы скрыть или заменить их на пустую строку, можно использовать фильтр do_shortcode_tag:
function wpclean_filter_unused_shortcode($output, $tag, $attr, $m) {
// Список удалённых шорткодов
$unused_shortcodes = array('old_shortcode', 'deprecated_shortcode');
if (in_array($tag, $unused_shortcodes)) {
return '';// заменяем на пустую строку
}
return $output;
}
add_filter('do_shortcode_tag', 'wpclean_filter_unused_shortcode', 10, 4);
Плагины для управления шорткодами и очистки контента
Для удобства работы с шорткодами можно использовать специализированные плагины:
- Shortcode Cleaner Lite — позволяет найти и удалить неиспользуемые шорткоды из контента.
- Clearfy Pro — многофункциональный плагин для оптимизации сайта, включая управление шорткодами. Подробнее на wpshop.ru.
- Shortcodes Ultimate — мощный набор шорткодов с удобным интерфейсом, позволяет легко заменить старые шорткоды.
Пример автоматической замены старых шорткодов на новые
Для автоматизации замены в базе данных можно использовать следующий пример кода. Он заменит в контенте все вхождения [old_shortcode] на [new_shortcode]:
function wpclean_replace_shortcode_in_content($old, $new) {
global $wpdb;
$wpdb->query(
$wpdb->prepare(
"UPDATE {$wpdb->posts} SET post_content = REPLACE(post_content, %s, %s) WHERE post_content LIKE %s",
'[' . $old,
'[' . $new,
'%' . $wpdb->esc_like('[' . $old) . '%'
)
);
}
// Использование
// wpclean_replace_shortcode_in_content('old_shortcode', 'new_shortcode');
Перед выполнением обязательно сделайте резервную копию базы данных.
Полезные советы по работе с шорткодами в WordPress
Чтобы в будущем избежать проблем с неиспользуемыми шорткодами, придерживайтесь следующих рекомендаций:
- Документируйте каждый добавляемый шорткод и его назначение.
- При удалении плагина, который добавляет шорткод, обязательно удаляйте или заменяйте его вызовы в контенте.
- Используйте дочерние темы или пользовательские плагины для регистрации и удаления шорткодов, чтобы не потерять изменения при обновлении темы.
- Проверяйте сайт на ошибки отображения после удаления шорткодов.
- Регулярно оптимизируйте базу данных и очищайте контент от устаревших вызовов.
Для дополнительной оптимизации и управления шорткодами рекомендую ознакомиться с функционалом плагина Clearfy Pro, который автоматизирует многие задачи по очистке и оптимизации WordPress.