2013-05-03 39 views
11

我正在尝试自定义标准woocommerce主题,并且迄今为止运行良好。我将所有模板文件从/plugins/woocommerce/templates复制到/mytheme/woocommerce并自定义文件。archive-product.php上的更改无效

但是,当我改变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

+0

您的网站上是否安装了任何缓存插件? – 2013-05-03 07:47:56

+0

不,我没有安装任何缓存插件。 – Slevin 2013-05-03 08:00:36

回答

11

似乎这仍然是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'); 
} 

信用:找到了解决办法here

+0

它是由设计看到这里http://docs.woothemes.com/document/third-party-custom-theme-compatibility/ – THRIVE 2015-02-26 23:14:29

+2

这个解决方案现在已经过时 - woocommerce_content()不存在woocommerce.php – 2016-01-28 20:03:43

+0

这工作2016年6月7日给我。 – 2016-06-08 01:28:26

7

以下是我固定的矿:

  1. 在主题删除woocommerce.php夹。
  2. 复制woocommerce插件目录中的TEMPLATE文件夹,将其粘贴到您的THEME文件夹中,并将其重命名为woocommerce。
  3. 打开刚刚重命名的文件夹,转至商店文件夹,然后编辑wrapper-start.php和wrapper-end.php。
+0

哇...这工作,但根据WooCommerce文档对一切添加兼容性的主题反对一切。这是一个错误?这看起来像一个可怕的工作,但绝对有效。 – RCNeil 2013-12-07 23:53:41

1

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

  1. 打开你的主题文件夹,并添加一个名为“woocommerce”的新子文件夹。
  2. 将文件“archive-product.php”和“taxonomy-product_cat.php”从/ plugins/woocommerce/templates复制到主题中的woocommerce子文件夹。
  3. 将“archive-product.php”重命名为“archive-mycategory.php”(或任何你喜欢的,这将是模板文件的类别)。
  4. 开放 “分类法product_cat.php”,敷用wc_get_template('archive-product.php');

    if (is_product_category('mycategory')){ 
    wc_get_template('archive-mycategory.php'); 
    

    }否则{ wc_get_template( '归档product.php'); }

1

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

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

add_theme_support('woocommerce');