本部分针对 §01–§62 每一章,补充 2025–2026 年 WordPress / WooCommerce 的重大变化与可落地的具体知识。所有数字与版本均来自 2026-07 可查的官方/权威来源,原书正文不动,新内容只在本节。
版本基线(截至 2026-07)
| 维度 | 原书标注 | 2026-07 真相 | 影响章节 |
|---|---|---|---|
| WordPress | 6.x | 7.0「Armstrong」(2026-05-20),420+ 项增强/修复;原生 AI(AI Abilities API)、命令面板(Ctrl/Cmd+K)、4 个新块、现代化后台 | §01/§09/§13/§49/§60 |
| WooCommerce | 8.x | 10.8.0 (2026-05-26);10.9.x 小修,11.0 预计 2026-07-28 | 全章 |
| PHP | 未强调 | 最低支持 7.4,推荐 8.3+(7.4 早 2022-11 EOL) | §09/§49 |
| 订单存储 | 未提 | HPOS 已成为新店默认(WC 8.2 起新装默认开,10.x 全面默认) | §26/§29/§31/§32 |
@woocommerce/store-api 这套思路,而不是只盯 REST。@wordpress/scripts)。product 文章类型,不是普通 post/page——做自定义查询时务必分清,否则 pre_get_posts 会误伤产品。single.php / archive-product.php 那套层级(原书讲的就是它,依旧完全有效)。/templates/,由 Site Editor 可视化编辑,theme.json 统管样式默认值。FSE(全站编辑)在 2026 已是默认范式。while(have_posts())。WP_Query 仍可用于块主题的自定义块/短代码里取数据(如首页精选)。functions.php 管样式,改用 theme.json + 块模式(block patterns)。@wordpress/scripts 现代构建。woocommerce_store_api_*),用于给结算块加字段/校验。@woocommerce/blocks-checkout 的 registerCheckoutFilters 注入自定义字段与校验逻辑。wp_enqueue_* 仍正确;块主题下,样式优先用 theme.json 的样式引擎(如 styles 字段)而非硬写 CSS 文件。wp_enqueue_script 时可用 wp_script_module(ESM)支持现代 JS 模块,WP 6.x+ 已原生支持 script modules。wp_posts/wp_postmeta,而是 wp_wc_orders/wp_wc_orders_meta;查订单别再用 wp_postmeta(§29/§32 详述)。the_*/get_the_* 与条件标签完全有效。get_template_part 在经典主题仍用;块主题下对应物是"块模板部件(Template Part 块)"和"块模式(Patterns)"。register_block_type),运营能在编辑器里直接配,比短代码友好。register_post_type / register_taxonomy 仍是标准;2026 建议在参数里加 show_in_rest => true,否则该类型数据无法被 Store API / 块编辑器读取。$_POST(注意 nonce/校验)。autoload=yes 的 option 里存大对象(拖慢每个请求),大缓存放 Transients 且设过期。register_sidebar;块主题下对应物是"块模板部件 + 块(最新文章块、导航块)",运营在 Site Editor 直接拖。/wp-json/wc/v3/(原书示例用的是 v3,正确);调用时务必用 HTTPS + 应用密码或 OAuth。wp_posts 记录,而是独立表 wp_wc_orders / wp_wc_orders_meta 等。wc_get_orders() 或 $order = wc_get_order($id);不要再走 get_posts(['post_type'=>'shop_order']),在 HPOS 下会取不到。$order 对象仍是 WC_Order,公开 API 不变,但底层存储已切到自定义表。$wpdb 直连查订单会失败(表结构变了):报表类需求改用 wc_get_orders() 或 WC 的 Data Stores(如 WC_Data_Store::load('order'))。$product 完全不变;注意"Featured 产品"在 HPOS 下仍走 product_visibility 分类法,原书那段 tax_query 仍可用。$cart 对象不变;块购物车下优先用 Store API 拉取,见 §37 补遗。add_theme_support('woocommerce');块主题额外可在声明数组里配置产品网格等(官方块主题文档有完整参数)。woocommerce/templates/... 到主题目录覆盖(原书讲的那套)。woocommerce_blocks_product_grid_item_html 仍适用于块主题的产品网格。theme.json 统管颜色/字体/间距 CSS 变量,覆盖全站,比子主题硬改 CSS 更稳。header.php/footer.php。wc-ajax + fragments)在经典购物车下仍可用,原书代码照跑。POST /wp-json/wc/store/v1/cart/add-item,返回购物车 JSON 后自行渲染。无头/自定义前端一律走 Store API,别再手搓 wc-ajax。woocommerce_product_tabs 过滤。[woocommerce_checkout] 短代码进入淘汰路径。woocommerce_checkout_<field> 类过滤器(主要针对经典,块结账兼容有限)。@woocommerce/blocks-checkout 的 registerCheckoutFilters 注册字段 + 校验(React 侧)。/checkout/?add-to-cart=123&quantity=2(配合 WC 10 的预填逻辑)。woocommerce_cart_calculate_fees 钩子对两种结账都有效,可保留。/wc/store/v1)已足够支撑无头购物车,很多新项目不再额外装 CoCart。theme.json + 块模式是专业建站标准(原书 §13/§15 提到的 PHP 模板正在被取代,但经典主题仍可用)。add_menu_page + 现代 React 组件(@wordpress/components),体验比纯 HTML 表单好。woocommerce_cart_hash、woocommerce_items_in_cart、wp_woocommerce_session、woocommerce_recently_viewed)。add_rewrite_rule 仍有效(对经典路由/自定义端点),块路由不受影响。