你好我对woocommerce相当新,我的商店有四类产品使用相同的单一产品模板.我想添加第五类产品,其中产品页面布局与已使用的产品页面布局非常不同.

这是文件结构 –

>主题/ woocommerce /单品/
>主题/ woocommerce /单品 – 模拟/
> theme / woocommerce / single-product-mock / title.PHP
> theme / woocommerce / content-single-product-mock.PHP
> theme / woocommerce / single-product.PHP

我创建了一个名为content-single-product-mock.PHP的文件.在single-product.PHP中使用以下代码

<?PHP if (has_term( 'mock','product_cat' )) {
            woocommerce_get_template_part( 'content','single-product-mock' );
        } else{
         wc_get_template_part( 'content','single-product' ); 
        } ?>

对于类别mock,它重定向到content-single-product-mock.PHP,但它使用单产品文件夹中的模板文件.如何更改content-single-product-mock.PHP中的模板路径,以便它使用single-product-mock文件夹中的自定义文件?

可能有不止一种方法可以做到这一点,但它们都会转变在包含模板之前过滤模板的想法.

您可以完全跳过WooCommerce的simple-product.PHP模板(无需覆盖该模板)并直接转到simple-product-mock.PHP并在那里创建所有内容.你可以通过过滤template_include来做到这一点.

add_filter( 'template_include','so_25789472_template_include' );

function so_25789472_template_include( $template ) {
  if ( is_singular('product') && (has_term( 'mock','product_cat')) ) {
    $template = get_stylesheet_directory() . '/woocommerce/single-product-mock.PHP';
  } 
  return $template;
}

您可以编辑single-product-mock.PHP来调用content-single-product-mock.PHP并对该文件进行硬编码.没有什么要求你继续使用Woo的钩子和功能.它们的目的只是为了让您轻松自定义.

或者说真的很棘手,你可以将单个产品/ title.PHP等模板复制到单个产品模拟文件夹中…例如:single-product-mock / title.PHP然后我们在任何时候在模拟类别中的单个产品模板,我们将拦截对单产品/ something.PHP模板的调用,并将它们重定向到single-product-mock / something.PHP(如果存在)并继续指向单个产品/某物.如果它没有PHP.我们将通过woocommerce_locate_template过滤器执行此操作.

add_filter( 'woocommerce_locate_template','so_25789472_locate_template',10,3 );

function so_25789472_locate_template( $template,$template_name,$template_path ){

    // on single posts with mock category and only for single-product/something.PHP templates
    if( is_product() && has_term( 'mock','product_cat' ) && strpos( $template_name,'single-product/') !== false ){

        // replace single-product with single-product-mock in template name
        $mock_template_name = str_replace("single-product/","single-product-mock/",$template_name );

        // look for templates in the single-product-mock/ folder
        $mock_template = locate_template(
            array(
                trailingslashit( $template_path ) . $mock_template_name,$mock_template_name
            )
        );

        // if found,replace template with that in the single-product-mock/ folder
        if ( $mock_template ) {
            $template = $mock_template;
        }
    }

    return $template;
}

php – WooCommerce – 如何根据类别创建多个单一产品模板?的更多相关文章

  1. android – 移动应用程序的WooCommerce API

    我打算为WooCommerce商店开发原生移动Android应用程序.我在这里查看了他们的RESTapi文档:http://docs.woocommercev2.apiary.io/我已经开始测试了,但是当我做不同的电话时GET/order让我们说它会返回商店的所有订单.有谁知道如何使用他们的API开发最终用户应用程序.例如:PUT/order(为登录用户创建订单)GET/order(获取登录用户

  2. 如何使用Mock修改Android设备上的features

    这篇文章主要介绍了如何使用Mock修改Android设备上的features,想了解Mock的同学可以参考下

  3. Node.js服务器环境下使用Mock.js拦截AJAX请求的教程

    Mock.js这个JavaScript库最常见的用法便是被用来拦截AJAX请求,well,这里我们就来看一下Node.js服务器环境下使用Mock.js拦截AJAX请求的教程:

  4. Python+ Flask实现Mock Server详情

    这篇文章主要介绍了Python+ Flask实现Mock Server详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

  5. 一文教你利用Stream API批量Mock数据的方法

    在日常开发的过程中我们经常会遇到需要mock一些数据的场景,比如说 mock 一些接口的返回或者说 mock 一些测试消息用于队列生产者发送消息。本文将教你如何通过 Stream API 批量 Mock 数据,需要的可以参考一下

  6. 详解express + mock让前后台并行开发

    这篇文章主要介绍了详解express + mock让前后台并行开发,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. 5分钟教你用nodeJS手写一个mock数据服务器的方法

    这篇文章主要介绍了5分钟教你用nodeJS手写一个mock数据服务器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  8. Node.js测试中的Mock文件系统详解

    相信大家应该都知道在Node.js测试中,常常会需要构造某种项目目录。 为每个测试用例添加相应的目录结构既费时又难以维护。那么这个时候Mock文件系统就派上用场了,下面这篇文章详细的介绍了Mock文件系统,有需要的朋友们可以参考借鉴,下面来一起学习学习吧。

  9. python多线程性能测试之快速mock数据

    这篇文章主要为大家介绍了python多线程性能测试之快速mock数据,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. vue 中简单使用mock的示例代码详解

    这篇文章主要介绍了vue 中简单使用mock的方法,本文通过图文实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部