Скрипт автоматического пересчета кол-ва записей в рубриках.
Проблема: при импорте постов, которые могут принадлежать к нескольким рубрикам (т.е. один пост может находиться в нескольких рубриках) таблица wp_term_taxonomy в поле 'count' содержит нулевые значения для рубрик импортируемых постов.
При этом на сайте в рубриках посты появляются.
Решением проблемы служит функция: wp_update_term_count().
Я её использую очень топорно -> получаю в phpmyadmin из таблицы wp_term_taxonomy
все ID пустых категорий (count = 0) и потом в скрипте на сайте запускаю.
wp_update_term_count( array(1,2,3,4,5 и все полученные ID), 'category' );
Подскажите, пожалуйста, как автоматизировать этот процесс в виде отдельного скрипта, который я бы запускал на сайте (например загрузкой отдельной страницы) и в итоге обновлялись бы все таксономии (категории) у которых count = 0.
PHP практически не знаю, отсюда и вопрос.
Теоретически я вижу процесс так:
- Получить в массив все имеющиеся таксономии (категории)
- Выбрать из них те, у которых count = 0
- Передать эти все значения (ID нулевых) в функцию wp_update_term_count()
- Запустить все это дело по загрузке отдельной страницы
Код пишу без проверки, сейчас нет возможности потестировать. Набросал на скорую как вижу.
1 вариант
https://wp-kama.ru/function/get_terms
код можете поместить в отдельный шаблон страницы (page) и сделать его приватным - таксономию нужно менять через код страницы
2 сделать простую форму на приватной странице
Как именно происходит импорт?
Почему нельзя обновлять счетчики руками после завершения импорта если твой способ работает, зачем что то менять?
Предполагаю что ты просто неправильно импортируешь посты, возможно как то сам лезешь в базу... но если ты уже пользуешься wordpress то изучи и используй его встроенные функции. Например эту https://wp-kama.ru/function/wp_insert_post