source

대량 가져오기/삭제 후 WordPress 분류법(카테고리/태그)의 개수 필드를 업데이트하는 방법

manysource 2023. 2. 8. 19:45

대량 가져오기/삭제 후 WordPress 분류법(카테고리/태그)의 개수 필드를 업데이트하는 방법

대량 Import/삭제 후 WordPress 분류(카테고리/태그)의 수 필드를 업데이트하려면 어떻게 해야 합니까?

관련 질문:

WordPress support Support fix Import 후 코멘트 및 카테고리 수 수정 http://wordpress.org/support/topic/fix-comment-and-category-counts-after-import

이 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')
)

WordPress에 준거한 더 많은 방법은wp_update_term_count_now(https://developer.wordpress.org/reference/functions/get_terms/)

예:

$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);

@kaorukobo의 답변은 잘 맞습니다.단, CPT의 모든 용어를 자동으로 업데이트하기 위해서는 약간의 커스터마이즈가 필요했습니다.특히 WooCommerce 제품 CPT는 몇 가지 커스텀 분류를 사용하여...

다음은 제품 CPT의 모든 분류법을 업데이트했습니다.

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
)

제 생각에 가장 좋은 방법은 WP-CLI를 사용하는 것입니다.여기에는 다음과 같은 명령어가 있습니다.

$ wp term recount category

매뉴얼은 https://developer.wordpress.org/cli/commands/term/recount/ 에서 찾을 수 있습니다.

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