Recuento de categorías de arreglos

4

De alguna manera, mi cantidad de publicaciones es incorrecta debido a la inserción de filas a través de php. Tengo el siguiente código para actualizar el recuento, ¿es correcto?

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'");
        }
    
pregunta Innate 02.03.2011 - 21:14

3 respuestas

5

Si solo desea actualizar los conteos de publicaciones en cada término, wp_update_term_count_now( $terms, $taxonomy ) debería hacerlo ... simplemente pase los términos afectados como una matriz y ejecútelo una vez por cada taxonomía que tenga.

También puedes llamar a wp_defer_term_counting( true ) antes de insertar nuevas filas y luego, luego de agregar tus publicaciones, ponte al día con los recuentos llamando a wp_defer_term_counting( false ) .

    
respondido por el goldenapples 02.03.2011 - 22:10
0

Hay otra secuencia de comandos SQL escrita por otra persona que realiza el trabajo: las actualizaciones cuentan para las categorías de productos en woocommerce o cualquier otra categoría.

También se tarda unos segundos en ejecutarse también:

enlace

    
respondido por el Dave Hilditch 23.11.2014 - 19:28
0

Ejemplo para la respuesta de 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);
    
respondido por el Martin from WP-Stars.com 17.05.2016 - 07:36

Lea otras preguntas en las etiquetas