Управление категориями — одна из базовых задач в администрировании сайтов на WordPress. В крупных проектах или при частом обновлении контента ручное создание и удаление категорий становится неудобным и затратным по времени. В этой статье разберём, как автоматизировать создание и удаление категорий программно, используя встроенные функции WordPress и некоторые полезные плагины.
Автоматическое создание категорий через функцию wp5_create_categories
Для создания категорий программно в WordPress используется функция wp_insert_term. Мы напишем функцию wp5_create_categories, которая будет принимать массив названий категорий и создавать их, если они ещё не существуют.
function wp5_create_categories(array $categories) {
foreach ($categories as $category_name) {
if (!term_exists($category_name, 'category')) {
$result = wp_insert_term($category_name, 'category');
if (is_wp_error($result)) {
error_log('Ошибка при создании категории: ' . $result->get_error_message());
}
}
}
}Эта функция проверяет наличие категории по имени и создаёт новую, если её нет. Можно вызвать её, например, при активации плагина или темы.
Пример вызова:
add_action('after_setup_theme', function() {
wp5_create_categories(['Новости', 'Обзоры', 'Советы']);
});Автоматическое удаление категорий с помощью wp5_delete_categories
Если необходимо автоматически удалять категории, например, неиспользуемые или по определённым условиям, можно реализовать функцию wp5_delete_categories. Она будет принимать массив ID или имён категорий для удаления.
function wp5_delete_categories(array $categories) {
foreach ($categories as $category) {
if (is_numeric($category)) {
wp_delete_term($category, 'category');
} else {
$term = get_term_by('name', $category, 'category');
if ($term) {
wp_delete_term($term->term_id, 'category');
}
}
}
}Удаление категории приведёт к переназначению всех связанных с ней записей в категорию «Без рубрики» или другую категорию по умолчанию.
Использование плагина Clearfy Pro для управления категориями
Для тех, кто не хочет писать код, можно рекомендовать плагин Clearfy Pro, который предоставляет инструменты для оптимизации работы с таксономиями. В нём есть возможность массового управления категориями, удаления пустых и неиспользуемых терминов, а также настройки автоматизации.
Clearfy Pro позволяет настраивать автоочистку таксономий, что избавляет от необходимости вручную проводить ревизию категорий.
Автоматизация создания и удаления категорий через WP-CLI
Если у вас есть доступ к командной строке сервера, можно автоматизировать управление категориями с помощью WP-CLI — интерфейса командной строки для WordPress.
Команды для создания и удаления категорий:
wp term create category "Новости"— создаст категорию «Новости»;wp term delete category 123 --force— удалит категорию с ID 123.
WP-CLI можно использовать в скриптах для регулярного обновления категорий, например, в крон-задачах.
Обработка ошибок и логирование при автоматизации
Важно учитывать, что при работе с таксономиями могут возникать ошибки, например, дублирование терминов или проблемы с базой данных. В приведённых функциях мы добавили логирование ошибок через error_log, чтобы отслеживать проблемы.
Для более продвинутого логирования можно использовать плагины вроде Expert Review, который помогает мониторить состояние сайта и уведомляет о критических ошибках.
Заключение по автоматизации управления категориями в WordPress
Автоматизация создания и удаления категорий экономит время и снижает риск ошибок при управлении структурой сайта. Программные методы с использованием wp_insert_term и wp_delete_term дают гибкость и контроль, а WP-CLI и специализированные плагины — удобство и расширенный функционал.
Рекомендуется тестировать автоматические скрипты на тестовой среде и делать резервные копии базы данных перед массовыми изменениями категорий. Так вы защитите свой сайт от случайных потерь данных и обеспечите стабильную работу.