在Woocommerce循环的中间插入突出显示的产品div

时间:2019-08-14 11:10:21

标签: php wordpress loops woocommerce

我想在正常的woocommerce循环的中间插入一个特色产品区域。

woocommerce循环的代码是

<?php

        if ( woocommerce_product_loop() ) {
            do_action( 'woocommerce_before_shop_loop' );
            woocommerce_product_loop_start();
            if ( wc_get_loop_prop( 'total' ) ) {
                while ( have_posts() ) {
                    the_post();
                    do_action( 'woocommerce_shop_loop' );
                    wc_get_template_part( 'content', 'product' );
                }
            }
            woocommerce_product_loop_end();
            do_action( 'woocommerce_after_shop_loop' );
        } else {
            do_action( 'woocommerce_no_products_found' );
        }
        do_action( 'woocommerce_after_main_content' );

        ?>

我要在8种产品之后插入的简码是

<div class="cart-upsell hide-on-desktop clear">
        <h3 class="centered">You May Also Like...</h3>
        <?php echo do_shortcode('[products limit="2" columns="2" orderby="rand" order="DESC"]')?>
    </div>

目前,此消息显示在循环的末尾,但认为它会在中间效果更好-仅在移动设备上显示。

那我怎样才能使它进入循环的中间?

1 个答案:

答案 0 :(得分:2)

这应该有效:

<?php

  if ( woocommerce_product_loop() ) {
      do_action( 'woocommerce_before_shop_loop' );
      woocommerce_product_loop_start();
      if ( wc_get_loop_prop( 'total' ) ) {
          $i = 1;
          while ( have_posts() ) {
              the_post();
              do_action( 'woocommerce_shop_loop' );
              wc_get_template_part( 'content', 'product' );
              if(8 === $i){
                ?>
                <div class="cart-upsell hide-on-desktop clear">
                  <h3 class="centered">You May Also Like...</h3>
                    <?php echo do_shortcode('[products limit="2" columns="2" orderby="rand" order="DESC"]')?>
                </div>
                <?php
              }
              $i++;
          }
      }
      woocommerce_product_loop_end();
      do_action( 'woocommerce_after_shop_loop' );
  } else {
      do_action( 'woocommerce_no_products_found' );
  }
  do_action( 'woocommerce_after_main_content' );

?>