18

我正在尝试自定义标准的 woocommerce 主题,到目前为止效果很好。我复制了所有模板文件并自定义/plugins/woocommerce/templates/mytheme/woocommerce这些文件。

但是当我改变一些事情时archive-product.php什么都没有发生?我什至尝试在核心文件(/plugins/woocommerce/templates/archive-product.php)中自定义它,但我不起作用。

我想更改h1标题的类:<h1 class="page-title"><?php woocommerce_page_title(); ?></h1>.

所以我查找了所有woocommerce 模板文件,该类page-title仅出现在这个文件中(以防止编辑错误的文件)。

编辑:

具体来说,我想自定义此路径中使用的主题:http ://example.com/product-category/mycategory

4

6 回答 6

52

我尝试了上述所有解决方案,但无济于事。无论我做什么,archive-product.php 都没有被使用。相反,大多数 woocommerce 页面都使用我的主题中的 page.php。

我的解决方案是添加主题支持......其中,我使用 woocommerce 已经有一段时间了,所以我完全忘记了这一点。但是在我的functions.php文件中添加以下行之后,archive-product.php现在正在使用(/mytheme/woocommerce/archive-product.php),我可以更新它,我应该可以。

add_theme_support('woocommerce');
于 2018-02-26T16:10:29.203 回答
24

似乎这仍然是 Woocommerce 中的一个问题。对于登陆这里的任何人,从 2.1.6 版开始,以下解决方案对我有效。

显然问题是由于函数 woocommerce_content() 为存档内容输出了错误的页面。

我使用以下方法来解决它:

将 woocommerce.php 中的 woocommerce_content() 替换为:

if ( is_singular( 'product' ) ) {
 woocommerce_content();
}else{
//For ANY product archive.
//Product taxonomy, product search or /shop landing
 woocommerce_get_template( 'archive-product.php' );
}

信用:在这里找到了解决方案

于 2014-04-09T19:55:41.187 回答
10

这是我修复我的方法:

  1. 删除主题文件夹中的 woocommerce.php。
  2. 复制 woocommerce 插件目录中的 TEMPLATE 文件夹,将其粘贴到您的主题文件夹中,然后将其重命名为 woocommerce。
  3. 打开刚刚重命名的文件夹,转到 shop 文件夹,然后编辑 wrapper-start.php 和 wrapper-end.php。
于 2013-11-22T10:09:56.933 回答
4

如果您使用 woocommerce.php 方法,则无法自定义存档产品。您必须使用 hooks 方法

http://docs.woothemes.com/document/third-party-custom-theme-compatibility/ 请注意:在您的主题文件夹中创建 woocommerce.php 时,您将无法覆盖 woocommerce/archive-product。 php 自定义模板作为 woocommerce.php 的优先级高于 archive-product.php。这是为了防止显示问题。

于 2014-07-04T15:50:58.303 回答
2

您需要编辑文件“taxonomy-product_cat.php”并添加条件 is_product_category('mycategory')。

  1. 打开您的主题文件夹并向其中添加一个名为“woocommerce”的新子文件夹。
  2. 将 /plugins/woocommerce/templates 中的文件“archive-product.php”和“taxonomy-product_cat.php”复制到主题中的 woocommerce 子文件夹。
  3. 将“archive-product.php”重命名为“archive-mycategory.php”(或任何您喜欢的名称,这将是该类别的模板文件)。
  4. 打开“taxonomy-product_cat.php”并 wc_get_template( 'archive-product.php' );用以下内容包装:
    if (is_product_category( 'mycategory' )){
        wc_get_template( 'archive-mycategory.php' );
    }  else {
        wc_get_template( 'archive-product.php' );
    }
于 2016-07-03T07:41:00.550 回答
2

对于其他在这里搜索的人,请仔细检查路径。例如不是/mytheme/woocommerce/templates/archive-product.php但只是/mytheme/woocommerce/archive-product.php。我不必将@Talk nerdy 应用到我的补丁或任何其他补丁上即可使其正常工作。

于 2020-10-29T19:47:09.290 回答