Как обновить поле подсчета таксономии после массового импорта?

Вопрос

Всем привет. У меня есть веб-сайт на WordPress. И сейчас меня очень сильно волнует одна проблема. Суть в том, что я не понимаю, как можно обновить поле для подсчета категорий и тегов после того, как я массово импортирую или удалю файлы.

Может быть, у вас есть какие-нибудь идеи?

Полезно: Как устранить ошибку Table is marked as crashed and should be repaired?

Ответ

В целом, для твоей ситуации есть немало решений. В основном они работают через SQL. Поэтому вот тебе код для этого:

UPDATE wp_term_taxonomy SET count = (
SELECT COUNT(*) FROM wp_term_relationships rel 
LEFT JOIN wp_posts po ON (po.ID = rel.object_id) 
WHERE 
rel.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id 
AND 
wp_term_taxonomy.taxonomy NOT IN ('link_category')
AND 
po.post_status IN ('publish', 'future')
)

Актуально: Спортивные ставки для профессионалов

Также если тебе в будущем понадобиться работать с продуктами WooCommerce, то здесь уже нужно будет использовать немного другое решение. Вот оно:

UPDATE wp_term_taxonomy tt
SET count =
(SELECT count(p.ID) FROM wp_term_relationships tr
LEFT JOIN wp_posts p
ON (p.ID = tr.object_id AND p.post_type = 'product' AND p.post_status = 'publish')
WHERE tr.term_taxonomy_id = tt.term_taxonomy_id
)