如何在数据库中保存Woocommerce的类别和子类别?

时间:2013-06-27 08:36:03

标签: mysql sql database wordpress woocommerce

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

任何线索?

非常感谢大家提前。 :)

4 个答案:

答案 0 :(得分:8)

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;
}

答案 1 :(得分:1)

你必须查看table_name wp_options for option_name" product_cat_children",有序列化的类别层次结构。

答案 2 :(得分:0)

也许是因为一个是父母,另一个是孩子,所以如果你定义了这种关系,那么相反的情况就不对了。

答案 3 :(得分:0)

您还需要执行以下步骤:将类别添加到wp_term_relationships中的正确产品中