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
任何线索?
非常感谢大家提前。 :)
答案 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中的正确产品中