Пустые категории в WordPress могут не только загромождать панель управления, но и негативно влиять на SEO вашего сайта. В этой статье мы подробно рассмотрим, как автоматически находить и удалять пустые категории с помощью кода и плагинов, а также оптимизировать структуру категорий на вашем сайте.
Почему важно удалять пустые категории в WordPress
Пустые категории — это те категории, к которым не привязаны записи. Они могут появляться после удаления или перемещения записей, либо при неправильной настройке таксономии. Вот почему их стоит удалять:
- Упрощают навигацию в админке и на сайте.
- Улучшают SEO, избегая индексации пустых страниц.
- Снижают риск появления дублирующегося контента.
Регулярное удаление пустых категорий помогает поддерживать чистоту и порядок в структуре сайта, что особенно важно для крупных проектов.
Как найти пустые категории в WordPress через админку
Самый простой способ — проверить раздел «Рубрики» в админке WordPress (Посты → Рубрики). Здесь отображается количество записей в каждой категории. Если у категории количество записей равно нулю, значит она пустая.
Однако при большом количестве категорий ручная проверка занимает много времени. Лучше автоматизировать процесс.
Автоматическое удаление пустых категорий с помощью кода
Вы можете добавить следующую функцию в файл functions.php вашей темы или в отдельный плагин. Эта функция автоматически удалит все пустые категории.
function wpcat_delete_empty_categories() {
$empty_cats = get_categories(array(
'hide_empty' => true,
'fields' => 'ids',
));
$all_cats = get_categories(array(
'hide_empty' => false,
'fields' => 'ids',
));
$empty_cats = array_diff($all_cats, $empty_cats);
foreach($empty_cats as $cat_id) {
wp_delete_category($cat_id);
}
}
// Запускаем функцию по крон-задаче или вручную
// wpcat_delete_empty_categories();Объяснение кода:
- Сначала мы получаем ID всех категорий с записями (
hide_empty => true). - Затем получаем ID всех категорий, включая пустые.
- Находим разницу — это и есть пустые категории.
- Удаляем каждую пустую категорию через
wp_delete_category().
Важно: запускать эту функцию лучше вручную или через крон, чтобы не удалять категории случайно.
Добавление cron-задачи для регулярного удаления
Чтобы функция запускалась регулярно, добавьте в functions.php следующий код:
if ( ! wp_next_scheduled( 'wpcat_cron_delete_empty_categories' ) ) {
wp_schedule_event( time(), 'daily', 'wpcat_cron_delete_empty_categories' );
}
add_action( 'wpcat_cron_delete_empty_categories', 'wpcat_delete_empty_categories' );Это позволит автоматически очищать пустые категории раз в сутки.
Удаление пустых категорий с помощью плагина
Если вы не хотите работать с кодом, можно использовать плагин Term Management Tools. Он позволяет массово удалять пустые категории и выполнять другие операции с таксономиями.
Также стоит обратить внимание на плагин Clearfy Pro, который содержит инструменты для оптимизации и очистки WordPress, включая управление категориями.
Как избежать появления пустых категорий
Чтобы минимизировать появление пустых категорий, придерживайтесь следующих рекомендаций:
- При удалении записей переназначайте их в другие категории.
- Автоматизируйте очистку с помощью крон-задач.
- Используйте плагины для оптимизации и управления таксономиями.
Также можно добавить проверку при удалении записи, чтобы автоматически удалять категорию, если она осталась пустой.
Пример функции удаления пустой категории после удаления записи
function wpcat_delete_empty_category_on_post_delete( $post_id ) {
$categories = wp_get_post_categories( $post_id );
foreach ( $categories as $cat_id ) {
$cat = get_category( $cat_id );
if ( $cat->count <= 1 ) { // Если после удаления записи категория станет пустой
wp_delete_category( $cat_id );
}
}
}
add_action( 'before_delete_post', 'wpcat_delete_empty_category_on_post_delete' );Эта функция автоматически удалит категорию, если после удаления записи она останется пустой.
Заключение
Удаление пустых категорий — простой, но важный шаг для поддержания чистоты и эффективности сайта на WordPress. Используйте предложенные методы для автоматизации этого процесса и интегрируйте их в вашу работу. Если хотите расширить функционал — обратите внимание на плагины Clearfy Pro и Term Management Tools.