Что такое автозаголовки в WooCommerce и зачем их удалять
В WooCommerce на страницах товаров, категорий и архивов автоматически выводятся заголовки (например, название категории или раздела). Иногда эти заголовки мешают дизайну или дублируются с другими элементами темы. Удаление автозаголовков позволяет лучше контролировать внешний вид страниц без использования дополнительных плагинов.
Диагностика: как определить, что заголовки генерируются WooCommerce
Чтобы понять, что именно выводит автозаголовок, откройте страницу товара или категорий и:
- Посмотрите исходный код страницы — заголовок обычно находится в <h1> или <h2> с классами типа
page-title. - Временно переключитесь на стандартную тему (например, Twenty Twenty-Three) и проверьте, сохраняется ли заголовок.
- Отключите кастомные хуки в functions.php, если они есть, чтобы понять, откуда идет вывод.
Как убрать автозаголовки WooCommerce через functions.php
WooCommerce выводит заголовок с помощью функции woocommerce_template_single_title для страницы товара и woocommerce_show_page_title для архивов. Чтобы их удалить, нужно отцепить соответствующие хуки.
add_action('wp', 'remove_woocommerce_autotitles');
function remove_woocommerce_autotitles() {
if (is_product()) {
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_title', 5);
}
if (is_product_category() || is_shop() || is_product_tag()) {
remove_action('woocommerce_before_main_content', 'woocommerce_show_page_title', 20);
}
}Этот код проверяет тип страницы и удаляет заголовки для товаров и архивов.
Удаление заголовков на страницах товара
Функция woocommerce_template_single_title отвечает за вывод заголовка товара. Хук woocommerce_single_product_summary с приоритетом 5 можно отцепить, чтобы заголовок не отображался.
Удаление заголовков на страницах категорий и архивах
Для архивных страниц заголовок выводится через хук woocommerce_before_main_content. Удаляем функцию woocommerce_show_page_title, чтобы скрыть заголовок.
Проверка результата после внедрения кода
Обновите страницу товара и категорий, чтобы убедиться, что заголовки исчезли. В случае кэширования очистите кэш браузера и кеш плагинов кэширования, если они используются.
Для проверки откройте исходный код страницы (Ctrl+U или Cmd+U) и найдите теги <h1> или <h2> с классом page-title. Их там быть не должно.
Частые ошибки при удалении автозаголовков и как их исправить
- Код не работает на всех страницах: Проверьте условные теги
is_product(),is_product_category()— они должны правильно определять тип страницы. Иногда кастомные шаблоны могут влиять. - Заголовок все еще отображается: Возможно, тема выводит заголовки вне хуков WooCommerce. Проверьте файлы темы (single-product.php, archive-product.php) на наличие прямого вывода заголовков.
- Ошибка синтаксиса PHP: Вставляйте код аккуратно, без лишних символов, в functions.php в дочерней теме, чтобы избежать конфликтов при обновлениях.
Практические советы по безопасности и производительности
- Вносите изменения в дочернюю тему, чтобы не потерять при обновлении.
- Не используйте плагины для удаления заголовков, если задача решается одним хуком — так уменьшите нагрузку и уменьшите количество кода.
- Всегда делайте бэкап functions.php перед правками.
Чек-лист для удаления автозаголовков в WooCommerce
- Определить, какие заголовки нужно убрать (товар, категория, архив).
- Проверить, как выводятся заголовки (хуки или тема).
- Добавить в functions.php код для удаления соответствующих хуков.
- Очистить кэш сайта и браузера.
- Проверить исходный код страницы на отсутствие заголовков.
- Проверить работу на мобильных и десктопных версиях.
- В случае проблем проверить тему и плагины на прямой вывод заголовков.
Сравнение способов удаления автозаголовков
| Метод | Описание | Плюсы | Минусы |
|---|---|---|---|
| Удаление хуков в functions.php | Отцепляет функции WooCommerce, выводящие заголовки | Легко контролировать, без плагинов, минимально влияет на производительность | Требует базовых знаний PHP; не работает при прямом выводе в теме |
| Использование CSS (display:none) | Прячем заголовок через стиль | Очень просто, не требует кода PHP | Заголовок остается в HTML, плохо для SEO и доступности |
| Плагины для кастомизации WooCommerce | Готовые решения с интерфейсом | Удобно для новичков, много дополнительных функций | Перегрузка сайта, возможны конфликты, нагрузка |
Дополнительный пример кода: удаление заголовков на всех страницах WooCommerce
add_action('init', function() {
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_title', 5);
remove_action('woocommerce_before_main_content', 'woocommerce_show_page_title', 20);
});Этот код сразу отключит заголовки на всех страницах WooCommerce без проверки условий, что может быть полезно для быстрой настройки перед дальнейшим кастомным выводом.
Если хотите вернуть заголовки, просто удалите или закомментируйте этот код.