在 Woocommerce 中为特定产品类别使用自定义单个产品模板

Posted

技术标签:

【中文标题】在 Woocommerce 中为特定产品类别使用自定义单个产品模板【英文标题】:Using a custom single product template for a specific product category in Woocommerce 【发布时间】:2018-08-19 16:40:22 【问题描述】:

我正在尝试仅为 woocommerce 商店中的一种产品使用自定义页面。我一直在尝试应用附加的函数,但没有成功(代码来自this answer)。

我在我的 /woocommerce 文件夹中创建了 single-product.php 文件的副本并添加了一些代码,但单个产品视图仅显示“标准”single-product-php 而不是我的 single-product- mock.php 文件。

并且该产品确实具有“自定义”产品类别。

add_filter( 'template_include', 'so_43621049_template_include', 10 );

function so_43621049_template_include( $template ) 
  if ( is_singular('product') && (has_term( 'custom', 'product_cat')) ) 
    $template = get_stylesheet_directory() . '/woocommerce/single-product-mock.php';
   
  retur

【问题讨论】:

【参考方案1】:

The code 您正在使用的工作非常完美。你的代码也有点不完整:

add_filter( 'template_include', 'custom_single_product_template_include', 50, 1 );
function custom_single_product_template_include( $template ) 
    if ( is_singular('product') && (has_term( 'custom', 'product_cat')) ) 
        $template = get_stylesheet_directory() . '/woocommerce/single-product-mock.php';
     
    return $template;

所以问题可能与:

    该自定义模板的位置,应位于活动子主题内的“woocommerce”文件夹中(或活动主题内)。 需要为您的主题启用 Woocommerce 支持。

解决方案:

    确保在您的活动子主题(或活动主题)中有一个“woocommerce”文件夹,并在其中添加您的自定义模板single-product-mock.php(但 不在“模板”内子文件夹) 检查 Woocommerce 支持是否启用: 复制默认single-product.php 位于活动子主题(或活动主题)中的“woocommerce”文件夹中的模板 进入后端 Woocommerce > 状态……您通常会在“模板”部分(在本页末尾)看到: 带有活跃的子主题: 有一个活跃的主题: 如果未启用,您应该搜索并查看相关的 Woocommerce 文档。

其中一个应该可以解决您的问题。

【讨论】:

这行得通!太棒了,非常感谢。 @LoicTheAztec

以上是关于在 Woocommerce 中为特定产品类别使用自定义单个产品模板的主要内容,如果未能解决你的问题,请参考以下文章

在 WooCommerce 中为特定产品类别自定义“添加到购物车”按钮

自定义特定 WooCommerce 产品类别上的“添加到购物车”按钮

在Woocommerce中根据产品类别添加自定义结帐字段

如何在 WooCommerce 中使用 SQL 查询选择特定类别的产品

在 Woocommerce wc_get_loop_prop 产品循环中仅包含某些类别

在 WooCommerce 产品循环中显示特定类别的产品属性值