programing

WooCommerce의 카테고리 및 하위 카테고리는 어떻게 DB에 저장됩니까?

closeapi 2023. 3. 2. 22:16
반응형

WooCommerce의 카테고리 및 하위 카테고리는 어떻게 DB에 저장됩니까?

WordPress 플러그인 - WooCommerce에서 카테고리 및 하위 카테고리에 문제가 있습니다.카테고리와 서브 카테고리를 작성하는 스크립트를 만들고 있는데, 문제는 이 모든 것이 WooCommerce DB 구조에서 어떻게 작동하는지 완전히 이해하지 못한다는 것입니다.

그게 내가 할 수 있었던 일이야:

"wp_terms"에서:

term_id | name              | slug     | term group
20      | Parent category   | parent   | 0
21      | Children category | children | 0

"wp_term_taxonomy"에서:

term_taxonomy_id | term_id | taxonomy    | description | parent | count
1                | 20      | product_cat |             | 0      | 0
2                | 21      | product_cat |             | 20     | 0

그건 먹히는데 왜 안 먹히죠?

"wp_term_taxonomy"에서:

term_taxonomy_id | term_id | taxonomy    | description | parent | count
1                | 20      | product_cat |             | 21     | 0
2                | 21      | product_cat |             | 0      | 0
function getParentCategories() {
    global $wpdb;
    $sql = "SELECT term_id as id, name, slug FROM wp_terms where term_id in (SELECT term_id FROM wp_term_taxonomy where parent = 0 and taxonomy = 'category') order by name asc";
    $parents = $wpdb->get_results( $sql );
    return $parents;
}

function getChildCategories($id) {
    global $wpdb;
    $sql = "SELECT term_id as id, name, slug FROM wp_terms where term_id in (SELECT term_id FROM wp_term_taxonomy where parent = $id and taxonomy = 'category')  order by name asc";
    $children = $wpdb->get_results( $sql );
    return $children;
}

option_name "product_cat_children"에 대한 테이블 wp_handless를 조사해야 합니다. 여기에는 직렬화된 카테고리 계층이 있습니다.

한쪽은 부모이고 다른 한쪽은 자녀이기 때문에 이 관계를 정의하면 그 반대는 안 되는 것이 맞다.

이제 한 단계 더 진행해야 합니다: wp_term_relations의 올바른 제품에 catoegory를 추가합니다.

문제가 생겼을 때:두 데이터베이스가 올바르게 채워졌음에도 불구하고 하위 카테고리는 표시되지 않았습니다.다음은 도움이 되었습니다.

  • wp_options 테이블의 product_cat_children 필드의 값을 삭제합니다.
  • WooCommerce의 관리 패널을 통해 주요 값 업데이트

product_cat_children 필드의 값이 업데이트됩니다.

모든 것이 잘 되었다.

언급URL : https://stackoverflow.com/questions/17338454/how-do-categories-and-subcategories-for-woocommerce-are-saved-in-db

반응형