wordpress woocommerce模板文件覆盖

时间:2013-02-22 13:20:10

标签: wordpress wordpress-plugin wordpress-theming woocommerce

我正在使用woocommerce开发电子商务商店。通过woocommerce,一切都很好。但我有一个问题。因为我想在产品页面(基于商店的页面)中显示一些带有一些文本的自定义图像。所以我认为wordpress advanced custom fields会很好。我安装了它。现在我需要在模板文件中提取图像。但通过浏览woocommerce插件,我得到它不使用wordpress模板。 Woocommerce自己生成总页面(产品页面)。并且我想从wordpress advanced custom fields插件中显示一些自定义字段。那么有人可以告诉我该怎么做吗?任何帮助和建议都会非常明显。感谢...

我希望显示所有产品的woocommerce商店页面应该使用我自己的自定义模板。这样我就可以使用wordpress高级自定义字段代码

4 个答案:

答案 0 :(得分:5)

要从wp-content/plugins/woocommerce/templates覆盖Woocommerce模板,请在wp-content/themes/<your theme>/woocommerce中创建一个名称相同的文件。它将被用来代替原来的。

如果您查看one of the original template files,您实际上会在顶部的评论中找到此说明:

  

通过将此模板复制到yourtheme / woocommerce / single-product.php来覆盖此模板

答案 1 :(得分:4)

WooCommerce不使用主题中的普通模板文件(它使用页眉和页脚等,但实际内部内容的大部分被分成很多Woo模板文件)。

您可以将模板从plugins/woocommerce/templates目录中复制出来并移到themes/yourtheme/woocommerce目录以覆盖(只需选择您需要的目录)。

所有模板can be found here的列表。用于更高级自定义can be found here的有用的php挂钩/过滤器列表。其他有用的资源是WC的CSS structure doclist of conditional template tags

对于WC的细节主题开发有一些乏善可陈的文档,所以你可能需要花一些时间来试验模板才能完成你想要的东西,但它的评论很好,很容易就能用到一次你学会了自己的方式。

答案 2 :(得分:1)

对于产品页面以及显示主页或类别页面等产品的网站的任何部分,对其负责的代码存在于woocommerce-template.php中 第29行

<?php if ( have_posts() ) : ?>

                <?php do_action('woocommerce_before_shop_loop'); ?>

                <?php woocommerce_product_loop_start(); ?>

                    <?php woocommerce_product_subcategories(); ?>

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

                        <?php woocommerce_get_template_part( 'content', 'product' ); ?>

                    <?php endwhile; // end of the loop. ?>

                <?php woocommerce_product_loop_end(); ?>

                <?php do_action('woocommerce_after_shop_loop'); ?>

            <?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?>

                <?php woocommerce_get_template( 'loop/no-products-found.php' ); ?>

            <?php endif;

您可以使用挂钩和过滤器来更改某些部分,或者您可以在 themes / yourtheme / woocommerce / functions.php 中覆盖该功能本身 您也可以直接进行编辑,但这不建议您在升级后丢失更改。

请注意,在第71行中,此函数使用模板文件content-product.php,该模板用于在循环中显示产品内容,并可通过将其复制到 yourtheme / woocommerce / content-product.php来覆盖。强>

答案 3 :(得分:1)

我找到了很多免费的woocommerce插件列表,以及一些自定义提示。也许它会有所帮助。 http://fivera.net/woocommerce-customization-free-wp-plugins/