2014-07-07 192 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

相關問題