wordpress - 更改特定产品类别页面的 Wordpress 模板
问题描述
我正在尝试更改特定产品类别页面的模板,但我一生都无法让它工作。我试过 taxonomy-product_cat-the-category 但无济于事。如果有区别,我正在使用 wpml 和 3 种不同语言的类别。我已经尝试过使用 3 种语言中的每一种的 slag,但仍然无法正常工作。不明白是什么原因造成的。
解决方案
首先从 WooCommerce 插件目录复制taxonomy-product_cat.php
&到您的主题 - 。archive-product.php
wordpress\wp-content\plugins\woocommerce\templates
wordpress\wp-content\themes\your-theme\woocommerce
archive-product.php
然后在您的主题的 woocommerce 目录中复制文件archive-product-2.php
,例如archive-product-3.php
等。稍后您将根据您的类别修改这些文件。
然后打开taxonomy-product_cat.php
文件。代码将如下所示。
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
wc_get_template( 'archive-product.php' );
我们需要根据wc_get_template()
我们的条件修改此代码中的模板调用。
首先获取当前类别 slug,然后我们可以比较 slug。根据 slug,我们将调用不同的存档产品文件。
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
// Get current category slug
global $wp_query;
$cat_slug = $wp_query->query_vars['product_cat'];
// Call template conditionally
if($cat_slug == 'accessories') {
wc_get_template( 'archive-product-2.php' );
} else {
wc_get_template( 'archive-product.php' );
}
更新
根据我的经验,最好的方法是通过复制到主题文件来避免 WooCommerce 模板覆盖。WooCommerce 会定期更新模板,最好每次更新模板以避免将来出现问题。所以如果可能的话,除了模板覆盖之外,最大限度地使用过滤器钩子。
推荐阅读
- javascript - 表单返回错误时如何在同一页面上显示错误?
- c++ - 在for循环中具有多个条件的冒泡排序
- identityserver4 - Blazor Webassembly:Identityserver4 NullReference AddQueryString
- python - 输入验证错误后在模板中显示 POST 数据
- javascript - 如何删除mongo中每个组的最新文档除外?[解决了]
- java - 数据库列不断恢复为空
- c++ - Sphinx:如何自定义域交叉引用
- python - 在 Python 中获取前一天的数据
- gitlab-ci - Helm 模板 - 从 Internet 上可用的外部图表安装多个包/发布
- azure - 如何缩放从 Azure 事件中心读取的 Dapr 组件