Как обновить количество записей в рубриках после импорта на сайт?
При импорте записей на сайт через XML у рубрик все по 0
Это нормальное поведение WordPress – счетчики таксономий (рубрик, меток) кэшируются и не всегда пересчитываются автоматически при импорте. Нужно принудительно обновить счетчики.
Скрипт для пересчета счетчиковСоздайте файл recalculate-counts.php в корневой папке сайта:
<?php require_once('wp-load.php'); echo '<h2>Пересчет счетчиков рубрик и меток</h2>'; // Получаем все рубрики $categories = get_terms(array( 'taxonomy' => 'category', 'hide_empty' => false, )); echo "Найдено рубрик: " . count($categories) . "<br><br>"; foreach ($categories as $term) { // Принудительно пересчитываем счетчик wp_update_term_count($term->term_id, 'category', true); // Получаем обновленное количество $count = wp_count_terms(array( 'taxonomy' => 'category', 'parent' => 0, 'term_id' => $term->term_id )); // Альтернативный способ подсчета $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'tax_query' => array( array( 'taxonomy' => 'category', 'terms' => $term->term_id, ), ), 'fields' => 'ids', ); $real_count = count(get_posts($args)); echo "Рубрика: {$term->name} (ID: {$term->term_id}) - Записей: $real_count<br>"; } // То же самое для меток $tags = get_terms(array( 'taxonomy' => 'post_tag', 'hide_empty' => false, )); echo "<br><h3>Метки</h3>"; echo "Найдено меток: " . count($tags) . "<br><br>"; foreach ($tags as $term) { wp_update_term_count($term->term_id, 'post_tag', true); $args = array( 'post_type' => 'post', 'post_status' => 'publish', 'tax_query' => array( array( 'taxonomy' => 'post_tag', 'terms' => $term->term_id, ), ), 'fields' => 'ids', ); $real_count = count(get_posts($args)); echo "Метка: {$term->name} (ID: {$term->term_id}) - Записей: $real_count<br>"; } echo "<br><strong>Готово! Обновите страницу админки.</strong>"; ?>