如何自定义WooCommerce模板以避免在更新时覆盖

时间:2017-04-14 作者:112233

我已成功更改的HTMLarchive-product.phpcontent-product.php 第页。当我更新到最新的Wordpress时,我发现我所做的所有更改都消失了。

我注意到,在我搜索自定义主题开发的地方,都提到了这个问题。然而,我不知道如何为WooCommerce页面做到这一点。

首先,我在管理面板中找不到模板选项(可能是我的主题问题)。

其次,我如何告诉WooCommerce使用我的自定义模板?

第三,我不确定在我的定制设计中放置什么。

我就是这样定制的archive-product.php

get_header( \'shop\' ); ?>

    <div class="row">
        <div class="small-12 medium-12 large-12 columns text-left">
            <!--breadcrumb-->
            <?php
            /**
             * woocommerce_before_main_content hook.
             *
             * @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
             * @hooked woocommerce_breadcrumb - 20
             * @hooked WC_Structured_Data::generate_website_data() - 30
             */
            do_action( \'woocommerce_before_main_content\' );
            ?>
        </div>

        <header class="small-12 medium-6 large-6 columns text-left woocommerce-products-header collapse">
        <!--title-->
            <?php if ( apply_filters( \'woocommerce_show_page_title\', true ) ) : ?>

            <h1 class="woocommerce-products-header__title page-title"><?php woocommerce_page_title(); ?></h1>

            <?php endif; ?>

            <?php
                /**
                 * woocommerce_archive_description hook.
                 *
                 * @hooked woocommerce_taxonomy_archive_description - 10
                 * @hooked woocommerce_product_archive_description - 10
                 */
                do_action( \'woocommerce_archive_description\' );
            ?>
        </header>

        <div class="small-12 medium-6 large-6 columns collapse">

            <?php if ( have_posts() ) : ?>
            <?php
                /**
                 * woocommerce_before_shop_loop hook.
                 *
                 * @hooked woocommerce_result_count - 20
                 * @hooked woocommerce_catalog_ordering - 30
                 */
                do_action( \'woocommerce_before_shop_loop\' );
            ?>
            <?php endif; ?>
        </div>

    </div>


    <div class="row small-up-2 large-up-4">
        <?php if ( have_posts() ) : ?>

        <?php #woocommerce_product_loop_start(); ?><!--removes ul-->

            <?php woocommerce_product_subcategories(); ?>

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

                <?php
                    /**
                     * woocommerce_shop_loop hook.
                     *
                     * @hooked WC_Structured_Data::generate_product_data() - 10
                     */
                    do_action( \'woocommerce_shop_loop\' );
                ?>

                <?php wc_get_template_part( \'content\', \'product\' ); ?>

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

        <?php #woocommerce_product_loop_end(); ?>

        <?php
            /**
             * woocommerce_after_shop_loop hook.
             *
             * @hooked woocommerce_pagination - 10
             */
            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_no_products_found hook.
             *
             * @hooked wc_no_products_found - 10
             */
            do_action( \'woocommerce_no_products_found\' );
        ?>

        <?php endif; ?> 
    </div>


<?php get_footer( \'shop\' ); ?>
请与我分享这方面的任何参考资料。因为我不确定该遵循哪一条,也不清楚具体步骤。

根据建议,

我创建了一个名为woocommerce 在“我的主题”中放置模板文件,如下所示:

my_theme/woocommerce/templates/archive-product.php
my_theme/woocommerce/templates/content-product.php
然而,它仍然指向插件文件。

2 个回复
最合适的回答,由SO网友:BlueSuiter 整理而成

这样做::

my_theme/woocommerce/archive-product.php
my_theme/woocommerce/content-product.php

SO网友:Aditya Batra

在根文件夹上创建woocommerce文件夹,并将模板从woocommerce插件(位于模板文件夹中)复制到根文件夹/woocommerce文件夹。编辑它们以避免在更新时进行更改。此外,根woocommerce文件夹中的文件必须与woocommerce插件/模板文件夹中的模式相同。

有关woocommerce模板自定义的更多详细信息,请访问以下链接。https://code.tutsplus.com/articles/an-introduction-to-theming-woocommerce-for-wordpress--wp-31577

相关推荐

Custom term templates

所以,我在网上做了一些研究,但没有找到可靠的答案,所以我来了。我需要为特定类别创建自定义woocommerce类别页面。例如,我有一个类别叫做“Awesome”。而不是使用由短代码生成的常规类别页面[product_category category=\"something\"], 我想为自定义特定类别页面Awesome.我发现我需要编辑taxonomy-product_cat.php 但我不知道如何将其链接到名为awesome.换句话说,我正在考虑制作php文件的自定义副本,然后将其添加为主题templ