Woocommerce 模板覆盖不起作用

问题描述 投票:0回答:8

我想覆盖我的主题中的 woocommerce 模板。我遵循 woocommerce 官方文档中的所有步骤。我确信我的主题中没有 woocommerce.php 文件。 所以,我无法理解为什么它不起作用。 我正在使用二十七个主题。

任何帮助将不胜感激。

wordpress woocommerce wordpress-theming woocommerce-theming
8个回答
14
投票

我遇到了与 WooCommerce 模板缓存相关的问题。

可以通过导航至清除缓存:

WooCommerce > 状态 > 工具 > 清除模板缓存


8
投票

尝试在您的主题的

function.php

中声明 Woocommerce 支持

7
投票

如果您已阅读本文档 https://docs.woothemes.com/document/template-struct/

请注意:在主题文件夹中创建 woocommerce.php 时,您将 无法覆盖 woocommerce/archive-product.php 自定义 主题中的模板,因为 woocommerce.php 优先于所有其他模板 模板文件。这是为了防止显示问题。

还要确保您没有激活“模板调试模式”,您可以在以下位置找到:

WP 仪表板 -> WooCommerce -> 系统状态 -> 工具


6
投票

经过大量研究,终于我从这里找到了答案WordPress - 无法覆盖 woocommerce 模板

实际上,我使用了模板文件夹中的所有文件,这就是它不起作用的原因。

步骤如此简单。但我不明白我怎么会想念它!

感谢 Mo'men Mohamed 的建议。


1
投票

是的,我同意莫巴希尔的观点。 有三个步骤可以检查为什么覆盖不起作用:

  1. 检查functions.php中是否添加了受支持的woocommerce(URL:https://docs.woocommerce.com/document/woocommerce-theme-developer-handbook/
  2. 检查主题中目录和文件的拼写是否正确,例如 your-theme/woocommerce。 (网址:https://docs.woocommerce.com/document/template-struct/
  3. Woocommerce 允许更改 woocommerce 模板的位置。挂钩是:woocommerce_template_path。如果您使用高级主题,请检查主题的functions.php 文件中的过滤器挂钩。如果该钩子退出,则使用该钩子的回调函数中提到的位置。

1
投票

我也面临着同样的问题。我将 JupiterX 主题与 Elementor 结合使用,并尝试覆盖 JupiterX Child 主题中的结帐模板,但它未加载。我仔细检查了路径,就像

themes/jupiterx-child/woocommerce/checkout/form-checkout.php

解决方案:

我已经解决了这个问题。实际上,JupiterX 主题有自己的 WooCommerce 重写结构,即

themes/jupiterx/lib/templates/woocommerce/checkout/form-checkout.php
,子主题也是如此,即
themes/jupiterx-child/lib/templates/woocommerce/checkout/form-checkout.php

了解更多详情: themes.artbees.net/docs/overriding-woocommerce-templates


0
投票

我也遇到这个问题了

清除缓存,然后只需将主题交换/激活为 WordPress 标准主题,然后交换回您的主题。快乐的日子!


0
投票

只需交换/激活主题即可,谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.