【问题标题】:Editing Woocommerce category/subcategory loop编辑 Woocommerce 类别/子类别循环
【发布时间】:2017-04-06 14:37:44
【问题描述】:

我目前正在使用 WooCommerce 集成构建自定义 WP 主题。所以先说一点背景。我的主题是使用 Foundation 6。我禁用了 WooCommerce 样式和布局。我正在使用覆盖模板,以便我可以集成 Foundation。

我的商店页面列出的是产品类别,而不是单个产品。然后,一旦选择了一个类别,您就会得到另一个子类别列表,最后是产品。

我可以使用以下代码将产品放入 4 列行中:

循环启动.php

<div class="row">

存档产品.php

<?php woocommerce_product_loop_start(); ?>

            <?php woocommerce_product_subcategories(); ?>

            <?php $counter = 1; while ( have_posts() ) : the_post(); ?>

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

            <?php 

                if( $counter % 4 == 0 ) : echo '</div><div class="row">'; endif;

                $counter++;

                endwhile; // end of the loop. ?>

<?php woocommerce_product_loop_end(); ?>

循环结束.php

</div>

内容产品.php

<div <?php if($wcp_last_loop) : post_class('medium-3 columns end'); else : post_class('medium-3 columns'); endif; ?>>
<?php
/**
 * woocommerce_before_shop_loop_item hook.
 *
 * @hooked woocommerce_template_loop_product_link_open - 10
 */
do_action( 'woocommerce_before_shop_loop_item' );

/**
 * woocommerce_before_shop_loop_item_title hook.
 *
 * @hooked woocommerce_show_product_loop_sale_flash - 10
 * @hooked woocommerce_template_loop_product_thumbnail - 10
 */
do_action( 'woocommerce_before_shop_loop_item_title' );

/**
 * woocommerce_shop_loop_item_title hook.
 *
 * @hooked woocommerce_template_loop_product_title - 10
 */
do_action( 'woocommerce_shop_loop_item_title' );

/**
 * woocommerce_after_shop_loop_item_title hook.
 *
 * @hooked woocommerce_template_loop_rating - 5
 * @hooked woocommerce_template_loop_price - 10
 */
do_action( 'woocommerce_after_shop_loop_item_title' );

/**
 * woocommerce_after_shop_loop_item hook.
 *
 * @hooked woocommerce_template_loop_product_link_close - 5
 * @hooked woocommerce_template_loop_add_to_cart - 10
 */
do_action( 'woocommerce_after_shop_loop_item' );
?>
</div>

因此,这适用于产品而非类别。我知道类别和子类别是由

<?php woocommerce_product_subcategories(); ?>

我也知道我必须使用挂钩或过滤器将每 4 个类别连续放置,但我并不精通 WP 挂钩和过滤器,因此正在努力寻找解决方案。我一直在尝试阅读钩子和过滤器,但希望能找到一些更具体到我正在尝试做的事情的帮助。

任何建议将不胜感激。

【问题讨论】:

    标签: wordpress woocommerce zurb-foundation-6


    【解决方案1】:

    所以我最终找到了解决方案,不确定这是否是最好的方法,但它确实有效。

    对于可能遇到相同问题的其他人,这就是我所做的。

    1. 在 wc-template-functions.php 中找到了 woocommerce_product_subcategories()。复制整个函数,包括检查它是否存在。

    2. 粘贴到您的functions.php 文件中。重命名函数,例如:

      function new_name_product_subcategories( $args = array() ) { .... }
      
    3. 查找以下 foreach 循环:

          foreach ( $product_categories as $category ) {
              wc_get_template( 'content-product_cat.php', array(
                  'category' => $category
              ) );
          }
      

    并更改为:

            $cat_counter = 1;
            foreach ( $product_categories as $category ) {
                wc_get_template( 'content-product_cat.php', array(
                    'category' => $category
                ) );
                if( $cat_counter % 4 == 0 ) : echo '</div><div class="row">'; endif;
                $cat_counter++;
            }
    
    1. 然后在您的 archive-product.php 文件中,更改:

      <?php woocommerce_product_subcategories(); ?>
      

    <?php new_name_product_subcategories(); ?>
    

    如果我找到通过 WP 挂钩的方法,我会发布回复,但这是我目前唯一能想到的方法。

    另外,我没有详细说明如何将 .columns 类添加到各个类别。我在 content-product_cat.php 文件中添加了这些内容。

    【讨论】:

      猜你喜欢
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      • 2017-06-04
      相关资源
      最近更新 更多