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

时间:2018-03-11 16:03:32

标签: php wordpress templates woocommerce custom-taxonomy

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

我在/ woocommerce文件夹中创建了一个single-product.php文件的副本,其中添加了一些代码,但单个产品视图只显示“标准”单品-php而不是我的单品 - 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 个答案:

答案 0 :(得分:4)

您正在使用的

The code非常完美。你的代码也有点不完整:

B

所以问题可能与:

有关
  1. 该自定义模板的位置,应位于您的有效子主题 (或您的活动主题内)的
  2. 需要为您的主题启用Woocommerce支持。
  3. 解决方案:

    1. 确保在您的活动子主题(或活动主题)中有一个“woocommerce”文件夹并在其中添加您的自定义模板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; }
      (但不在“模板”子文件夹中)
    2. 要检查Woocommerce支持已启用:
      • 复制默认single-product-mock.php 位于您的活动子主题(或活动主题)中的“woocommerce”文件夹内的模板
      • 进入后端Woocommerce>状态...您通常会在“模板”部分(本页末尾)中看到:

        积极的儿童主题:
        enter image description here 活跃的主题:
        enter image description here
      • 如果未启用,则应搜索并查看相关的Woocommerce文档。
    3. 其中一个,应该解决你的问题。