Шорткоды — это мощный инструмент WordPress, позволяющий вставлять сложные элементы и функционал в записи и страницы с помощью простых тегов. Однако по мере развития сайта и смены тем или плагинов многие шорткоды перестают использоваться, оставаясь в контенте и вызывая ошибки или некорректное отображение.
В этой статье мы подробно разберём, как найти и удалить неиспользуемые шорткоды в WordPress, чтобы очистить контент, повысить производительность и избежать багов. Также рассмотрим примеры кода, которые помогут автоматизировать этот процесс.
Почему важно удалять неиспользуемые шорткоды
Когда шорткод, используемый в контенте, перестаёт поддерживаться плагином или темой, он перестаёт работать и выводится как текст, например: [example_shortcode]. Это портит внешний вид страниц и может сбивать пользователей.
Кроме того, наличие большого количества неработающих шорткодов усложняет поддержку сайта, увеличивает нагрузку на парсер контента и снижает качество SEO.
Удаление неиспользуемых шорткодов помогает:
- Избавиться от лишнего мусора в базе данных и контенте.
- Обеспечить корректное отображение страниц.
- Повысить скорость загрузки за счёт уменьшения объёма обрабатываемого контента.
- Избежать конфликтов с другими плагинами и темами.
Как найти неиспользуемые шорткоды в контенте
Поиск вручную через редактор
Если сайт небольшой, можно открыть записи и страницы в визуальном или текстовом редакторе и найти шорткоды по шаблону [название_шорткода]. Однако это трудоёмко и неэффективно для больших сайтов.
Поиск с помощью SQL-запроса
Можно сделать выборку из базы данных для поиска записей, где встречается шорткод. Например, чтобы найти все записи с шорткодом [my_shortcode], выполните запрос:
SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%[my_shortcode]%';Таким образом можно выявить, где шорткод ещё используется.
Использование плагинов для поиска шорткодов
Существуют плагины, которые сканируют контент на наличие шорткодов, например:
- Shortcode Cleaner Lite — помогает выявлять и удалять старые шорткоды.
- Find Shortcodes — позволяет найти все шорткоды на сайте.
При установке плагинов с WPSHOP.ru можно быть уверенным в совместимости и актуальности.
Как удалить неиспользуемые шорткоды из контента
Удаление вручную
Самый простой способ — открыть запись и удалить шорткод из текста. Но при большом количестве записей это неудобно.
Автоматическое удаление через код
Можно написать функцию, которая будет искать и удалять определённые шорткоды из всех записей. Ниже пример функции wpnews_remove_unused_shortcodes, которая удаляет шорткод [old_shortcode] из контента:
function wpnews_remove_unused_shortcodes() {
global $wpdb;
$shortcode = 'old_shortcode';
$pattern = '\\[' . preg_quote($shortcode, '/') . '[^\]]*\\]';
// Получаем все посты с этим шорткодом
$posts = $wpdb->get_results($wpdb->prepare(
"SELECT ID, post_content FROM {$wpdb->posts} WHERE post_content LIKE %s",
'%' . $wpdb->esc_like('[' . $shortcode) . '%'
));
foreach ($posts as $post) {
$new_content = preg_replace('/' . $pattern . '/', '', $post->post_content);
if ($new_content !== $post->post_content) {
// Обновляем пост
$wpdb->update(
$wpdb->posts,
array('post_content' => $new_content),
array('ID' => $post->ID),
array('%s'),
array('%d')
);
}
}
}
// Запуск функции один раз
// wpnews_remove_unused_shortcodes();Эту функцию рекомендуется запускать один раз, например, через WP-CLI или временно добавив в functions.php и потом удалив.
Использование плагинов для массового удаления
Плагины вроде Shortcode Cleaner Lite позволяют искать неиспользуемые шорткоды и очищать их из контента через удобный интерфейс, без риска повредить данные.
Как предотвратить появление неиспользуемых шорткодов
Деактивация плагинов и шорткодов
Если вы планируете отключить плагин, который добавляет шорткоды, сначала удалите все шорткоды из контента, чтобы избежать отображения ошибок.
Использование функций-заглушек для шорткодов
Чтобы временно скрыть ошибки от неактивных шорткодов, можно зарегистрировать пустые функции-обработчики. Например:
function wpnews_empty_shortcode_handler($atts, $content = null) {
return '';
}
add_shortcode('old_shortcode', 'wpnews_empty_shortcode_handler');Это позволит сохранить контент без вывода ошибок, пока вы не удалите шорткод полностью.
Автоматизация с помощью WPRemark
Для сайтов с большим количеством контента можно использовать WPRemark — плагин для автоматического анализа и редактирования контента, который помогает выявлять и убирать устаревшие элементы, включая шорткоды.
Выводы и рекомендации
Регулярное удаление и контроль за используемыми шорткодами — важный аспект поддержки WordPress-сайта. Это позволяет содержать контент в чистоте, повышать производительность и улучшать пользовательский опыт.
Используйте SQL-запросы, плагины и собственные функции для поиска и удаления неиспользуемых шорткодов. Временно можно регистрировать заглушки, чтобы избежать ошибок отображения.
Если хотите автоматизировать эти процессы и получить дополнительные инструменты для работы с контентом, обратите внимание на решения с WPSHOP.ru.