WooCommerce 3.x是否仍沿用2.6版本产品元键存储方式?
WooCommerce v2.6 vs v3.x 产品元键存储差异
好问题!WooCommerce 3.x 对产品数据存储做了不少优化,尤其是引入了 wp_wc_product_meta_lookup 这个新表来提升产品筛选、列表查询的效率,但你提到的这些元键并非全部迁移,具体情况逐个拆解:
- _sku:仍然保留在
wp_postmeta表中,但会同步一份到wp_wc_product_meta_lookup表。原始数据的存储位置没变,只是新增了同步副本用于快速查询。 - _price、_regular_price、_sale_price:这三个价格相关元键依旧在
wp_postmeta中存储原始值,但同样会同步到wp_wc_product_meta_lookup表。WooCommerce 3.x 推荐通过WC_Product类的方法(比如get_price()、get_regular_price())来获取价格,而不是直接读取数据库,不过直接查wp_postmeta仍然能拿到正确值。 - _manage_stock:完全保留在
wp_postmeta表中,没有迁移,这个元键的作用还是控制产品是否开启库存管理。 - _stock_status:依旧存储在
wp_postmeta里,不过需要注意 3.x 中库存状态的可选值更规范(比如instock、outofstock、onbackorder),但元键本身没有变化。另外库存数量(_stock)会同步到 lookup 表,但_stock_status原始数据仍在 postmeta。 - _featured:依然在
wp_postmeta中存储,同时同步到wp_wc_product_meta_lookup表,方便快速筛选特色产品。
总结一下:你提到的所有元键都没有从 wp_postmeta 中移除,部分只是新增了同步到新表的副本用于性能优化。不过官方建议尽量使用 WooCommerce 提供的产品 API 来获取这些数据,而不是直接操作数据库表,这样能更好兼容后续版本的变化。
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

