2014-07-07 195 views
0

我在运行wordpress的网站上做了一些工作 - woocommerce由木星主题风格。在单一产品页面上增加相关产品(woocommerce)

问题是我已经要求开发人员寻求帮助,但这已经有一段时间了。

我正在寻找一种方法来增加“相关产品”的底部从2到4,所以它填写了模板。

在related.php中,我想我找到了值来改变相关产品的数量,但我错了。它什么都不做,对我来说这本身就很奇怪。

OLD

<?php 
/** 
* Related Products 
* 
* @author  WooThemes 
* @package  WooCommerce/Templates 
* @version  1.6.4 
*/ 

if (! defined('ABSPATH')) exit; // Exit if accessed directly 

global $product, $woocommerce_loop; 

$related = $product->get_related($posts_per_page); 

if (sizeof($related) == 0) return; 

$args = apply_filters('woocommerce_related_products_args', array(
    'post_type'   => 'product', 
    'ignore_sticky_posts' => 1, 
     'no_found_rows'  => 1, 
    'posts_per_page'  => $posts_per_page, 
    'orderby'    => $orderby, 
    'post__in'    => $related, 
    'post__not_in'   => array($product->id) 
)); 

$products = new WP_Query($args); 

$woocommerce_loop['columns'] = $columns; 

if ($products->have_posts()) : ?> 

    <div class="related products"> 

     <h2><?php _e('Related Products', 'woocommerce'); ?></h2> 

     <?php woocommerce_product_loop_start(); ?> 

      <?php while ($products->have_posts()) : $products->the_post(); ?> 

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

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

     <?php woocommerce_product_loop_end(); ?> 

    </div> 

<?php endif; 

wp_reset_postdata(); 

<?php 
/** 
* Related Products 
* 
* @author  WooThemes 
* @package  WooCommerce/Templates 
* @version  1.6.4 
*/ 

if (! defined('ABSPATH')) exit; // Exit if accessed directly 

global $product, $woocommerce_loop; 

$related = $product->get_related(6); 

if (sizeof($related) == 0) return; 

$args = apply_filters('woocommerce_related_products_args', array(
    'post_type'   => 'product', 
    'ignore_sticky_posts' => 1, 
    'no_found_rows'  => 1, 
    'posts_per_page'  => 6, 
    'orderby'    => $orderby, 
    'post__in'    => $related, 
    'post__not_in'   => array($product->id) 
)); 

$products = new WP_Query($args); 

$woocommerce_loop['columns'] = 4; 

if ($products->have_posts()) : ?> 

    <div class="related products"> 

     <h2><?php _e('Related Products', 'woocommerce'); ?></h2> 

     <?php woocommerce_product_loop_start(); ?> 

      <?php while ($products->have_posts()) : $products->the_post(); ?> 

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

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

     <?php woocommerce_product_loop_end(); ?> 

    </div> 

     <?php endif; 

wp_reset_postdata(); 

所以我真的很困惑,现在,希望任何人有怎么改建议或解决方案。

回答

1

你需要重新定义WooCommerce功能来覆盖它包含的默认值:

在你functions.php补充一点:

// Redefine woocommerce_output_related_products() 
function woocommerce_output_related_products() { 
    woocommerce_related_products(4,2); // Display 4 products in rows of 2 
} 

你需要在括号中编辑的数字,以满足您的要求。

+0

太棒了,我在网上找到它之前就试过了。但贴的位置也是关键吗?因为当我在主题的functions.php开头粘贴它时,它对我没有任何帮助。但是,当粘贴到最后它的工作,我认为这与我试图在函数被调用之前重写的事实有关? – user3813037

+0

它应该没有什么区别,但正如你所说的,如果你已经在其他地方定义了这个函数,然后在已经定义的函数之前将它重新定义在某处,那么是的,它不会产生任何效果。真高兴你做到了。 – Kinnectus

相关问题