wordpress archive-product.php上的更改不起作用

z9gpfhce  于 2023-04-11  发布在  WordPress
关注(0)|答案(7)|浏览(183)

我正在尝试自定义标准的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

rjee0c15

rjee0c151#

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

zyfwsgd6

zyfwsgd62#

对于其他在这里搜索的人,请再次检查路径。例如,它不是/mytheme/woocommerce/templates/archive-product.php,而是/mytheme/woocommerce/archive-product.php。我不必将@Talk nerdy应用到我的补丁或任何其他补丁中来使其工作。

cld4siwp

cld4siwp3#

您需要编辑文件“taxonomy-product_cat.php”并添加条件is_product_category('mycategory')。
1.打开你的主题文件夹并添加一个新的子文件夹命名为“woocommerce”到它.
1.将文件“archive-product.php”和“taxonomy-product_cat.php”从/plugins/woocommerce/templates复制到主题的woocommerce子文件夹中。
1.将“archive-product.php”重命名为“archive-mycategory.php”(或者您喜欢的任何名称,这将是类别的模板文件)。
1.打开“taxonomy-product_cat.php”并使用以下内容 Package wc_get_template( 'archive-product.php' );

if (is_product_category( 'mycategory' )){
        wc_get_template( 'archive-mycategory.php' );
    }  else {
        wc_get_template( 'archive-product.php' );
    }
b1uwtaje

b1uwtaje4#

我正在使用Woocommerce和Elementor开发一个自定义WordPress主题,我遇到了同样的错误。我从原始的woocommerce目录中复制archive-product.php并放置在/mytheme/woocommerce/目录中。然后我通过Elementor模板构建器创建了一个新的产品存档模板。然后我添加了这段代码到functions.php:

function woocommerce_custom_archive_template( $template ) {
  if ( is_post_type_archive( 'product' ) ) {
    $new_template = locate_template( array( 'archive-product.php' ) );
    if ( '' != $new_template ) {
      return $new_template ;
    }
  }
  return $template;
}

该函数用于自定义WooCommerce产品发布类型归档页面模板,它检查归档是否针对产品发布类型,如果是,则在主题文件夹中查找自定义archive-product.php模板文件,如果该文件存在,它加载自定义模板而不是默认的WooCommerce模板。如果您想在主题中自定义产品存档页面模板,则必须使用此功能。
结合add_theme_support('woocommerce');这解决了我的问题。希望它能帮助其他开发人员在未来!

gjmwrych

gjmwrych5#

我尝试了上述所有解决方案,但都无济于事。无论我做了什么,archive-product.php都没有被使用。相反,大多数woocommerce页面都在使用我的主题中的page.php。
对我来说,解决方案是添加主题支持...这是一段时间,因为我使用woocommerce,所以我完全忘记了这一点.但添加以下行到我的functions.php文件后,archive-product.php现在正在使用(/mytheme/woocommerce/archive-product.php),我可以更新它,因为我应该能够.

add_theme_support('woocommerce');
i7uaboj4

i7uaboj46#

似乎这仍然是Woocommerce中的一个问题。对于任何登陆这里的人来说,以下解决方案在2.1.6版本中对我有效。
显然,问题是由于函数woocommerce_content()输出了错误的存档内容页面。
我使用以下方法来解决它:
将woocommerce_content()在woocommerce.php中替换为:

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

vi4fp9gy

vi4fp9gy7#

以下是我如何修复我的:
1.删除主题文件夹中的woocommerce.php。
1.复制模板文件夹在woocommerce插件目录,粘贴到您的主题文件夹,并将其重命名为woocommerce.
1.打开您刚刚重命名的文件夹,转到shop文件夹,然后编辑wrapper-start.php和wrapper-end.php。

相关问题