WooCommerce产品上不同类别的模板

时间:2013-12-02 作者:dannyw24

我在产品选项卡上为一个名为“shop”的类别创建了一个自定义模板。我已经阅读了前面的一些主题,其中提到了对模板执行if条件检查类别。

我试过这个,但运气不好,所以去制作一个名为“单一产品商店”的模板。然后,我编写了一个条件来加载特定的页面模板,并将其放置在单个产品中。php。

然而,现在我似乎生成了一个php警告。

            <?php while ( have_posts() ) : the_post(); ?>

<?php
        if( has_term( \'shop\', \'product_cat\' ) ) {
            $file = \'single-product-shop.php\';
        } else {
            $file = \'single-product-default.php\';
        }

        global $woocommerce;

        load_template( $woocommerce->template_url . $file );
?>

                <?php endwhile; // end of the loop. ?>
如果有人能指出我做错了什么,我将不胜感激。

谢谢

1 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

Woocommerce有自己的功能woocommerce_get_template_part() 要加载模板部件,请如下使用:

woocommerce_get_template_part( $slug, $name );
指的是相应的文件{$slug}-{$name}.php 或者像这样使用:

woocommerce_get_template_part( $slug );
引用文件{$slug}.php, 它自动

查看您的主题/slug(-name)。php和yourtheme/woocommerce/slug(-name)。php

它可以与以下条件一起使用:

    if( has_term( \'shop\', \'product_cat\' ) ) {
        woocommerce_get_template_part( \'single-product-shop\' );
    } else {
        woocommerce_get_template_part( \'content\', \'single-product\' );
    }

结束

相关推荐

private functions in plugins

我开发了两个插件,其中一个功能相同(相同的名称,相同的功能)。当试图激活两个插件时,Wordpress会抛出一个错误,因为它不允许我以相同的名称定义函数两次。有没有一种方法可以使这个函数只对插件私有,而不使用面向对象编程,也不简单地重命名函数?我不想使用OOP,因为我首先要学习它。此外,我不想重命名该函数,因为我可能也想在其他插件中使用它,而重命名感觉不太合适。