wpclean.ru wordpress WPClean.ru

Как удалить неиспользуемые шорткоды в WordPress через функции темы

Шорткоды — удобный способ добавлять динамический контент в записи и страницы 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.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее