基于Timber的Woocommerce自定义主题创建结账页无法调用woocommerce.php咨询
Timber自定义主题结账页无法加载woocommerce.php的解决方法
- 第一步:确认主题已声明WooCommerce支持
在主题functions.php文件中加入以下代码,确保主题启用WooCommerce集成能力:add_theme_support( 'woocommerce' ); - 第二步:自定义结账模板主动引入woocommerce.php
自定义页面模板不会自动触发主题默认的文件加载逻辑,你需要在自定义结账页的PHP模板头部手动引入目标文件,示例代码如下:/* * Template Name: 自定义结账页 */ // 手动加载woocommerce.php $woocommerce_php_path = get_template_directory() . '/woocommerce.php'; if ( file_exists( $woocommerce_php_path ) ) { require_once $woocommerce_php_path; } // 注入Timber上下文与WooCommerce结账数据 $context = Timber::context(); $context['post'] = Timber::get_post(); $context['checkout'] = function_exists('WC') ? WC()->checkout() : null; Timber::render( 'checkout.twig', $context ); - 第三步:完善Timber上下文的WooCommerce注入逻辑
确保你在functions.php中配置的上下文过滤器包含了结账页的判断,避免WooCommerce全局变量未被传入Twig模板:add_filter( 'timber/context', 'inject_woocommerce_context' ); function inject_woocommerce_context( $context ) { if ( function_exists( 'is_checkout' ) && is_checkout() ) { $context['woocommerce'] = WC(); } return $context; } - 第四步:刷新固定链接规则
进入WordPress后台「设置」-「固定链接」页面,直接点击「保存更改」,刷新重写规则,排除路径冲突导致的模板加载异常。
内容的提问来源于stack exchange,提问作者Simon S.
相关产品推荐
相关产品推荐

