Fixieren der Kategorieanzahl

Irgendwie sind meine Post-Zählungen falsch, weil Zeilen über PHP eingefügt werden. Ich habe den folgenden Code, um die Zählung zu aktualisieren, ist es richtig?

global $wpdb; $result = mysql_query("SELECT term_id,term_taxonomy_id FROM $wpdb->term_taxonomy where taxonomy = 'category'"); while ($row = mysql_fetch_array($result)) { $term_taxonomy_id = $row['term_taxonomy_id']; $countresult = mysql_query("SELECT object_id FROM $wpdb->term_relationships WHERE object_id IN (SELECT ID FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish') AND term_taxonomy_id = '$term_taxonomy_id'"); $count = mysql_num_rows($countresult); mysql_query("UPDATE $wpdb->term_taxonomy SET count = '$count' WHERE term_taxonomy_id = '$term_taxonomy_id'"); } 

Solutions Collecting From Web of "Fixieren der Kategorieanzahl"

Wenn Sie nur die wp_update_term_count_now( $terms, $taxonomy ) der Beiträge in jedem Term aktualisieren möchten, sollten Sie wp_update_term_count_now( $terms, $taxonomy ) tun … übergeben Sie einfach die betroffenen Bedingungen als Array und führen Sie sie einmal für jede Taxonomie aus, die Sie haben.

Sie können auch wp_defer_term_counting( true ) bevor Sie neue Zeilen einfügen, und dann nach dem Hinzufügen Ihrer Posts die wp_defer_term_counting( false ) durch Aufrufen von wp_defer_term_counting( false ) .

Es gibt ein sql-Skript, geschrieben von jemand anderem, der den Job erledigt – Updates zählen für Produktkategorien in woocommerce oder jeder anderen Kategorie zählt.

Es dauert nur ein paar Sekunden, um auch zu laufen:

https://stackoverflow.com/questions/18669256/how-to-update-wordpress-taxonomiescategories-tags-count-field-after-bulk-impo

Beispiel für die Antwort von Goldenapples:

 $update_taxonomy = 'my_taxonomy'; $get_terms_args = array( 'taxonomy' => $update_taxonomy, 'fields' => 'ids', 'hide_empty' => false, ); $update_terms = get_terms($get_terms_args); wp_update_term_count_now($update_terms, $update_taxonomy);