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

Using a custom single product template for a specific product category in Woocommerce

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

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

并且产品确实具有产品类别 "custom"。

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

您正在使用的效果非常好。您的代码也有点不完整:

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;
}

所以问题可能与:

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

解决方案:

  1. 确保在您的活动子主题 (或活动主题) 中有一个 "woocommerce" 文件夹,并在其中添加您的自定义模板 single-product-mock.php
    (但 不在 "templates" sub-folder 内)
  2. 检查 Woocommerce 支持是否启用:
    • 复制默认值single-product.php "woocommerce" 文件夹中的模板位于您的活动子主题 (或活动主题)
    • 进入后端 Woocommerce > 状态...您通常会在 "templates" 部分(在本页末尾)看到:

      使用活动 child-theme:
      有一个活跃的主题:
    • 如果未启用,您应该搜索并查看相关的 Woocommerce 文档。

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