WooCommerce产品分类显示顺序的数据库存储位置咨询
WooCommerce产品分类排序字段的数据库存储位置
WooCommerce后台手动设置的产品分类显示顺序,并不存在于wp_terms表中,而是存在wp_termmeta表内,对应的元键是menu_order。
- 关联逻辑:
wp_termmeta的term_id与wp_terms表的term_id一一对应,通过这个字段可以匹配到具体的产品分类。 - 注意:
menu_order的存储值是字符串类型,做SQL排序时需要转换成整数,避免排序逻辑出错。
示例SQL查询(按自定义顺序获取产品分类)
SELECT t.term_id, t.name, t.slug, COALESCE(CAST(tm.meta_value AS UNSIGNED), 0) AS menu_order FROM wp_terms t JOIN wp_term_taxonomy tt ON t.term_id = tt.term_id LEFT JOIN wp_termmeta tm ON t.term_id = tm.term_id AND tm.meta_key = 'menu_order' WHERE tt.taxonomy = 'product_cat' ORDER BY menu_order ASC;
这里用LEFT JOIN和COALESCE是为了兼容那些没设置手动排序的分类,默认给它们分配排序值0,保证查询结果包含所有产品分类。
内容的提问来源于stack exchange,提问作者Manuel Gabrielli
相关产品推荐
相关产品推荐

