在单个产品页面上增加相关产品(woocommerce)
Posted
技术标签:
【中文标题】在单个产品页面上增加相关产品(woocommerce)【英文标题】:Increase related products on single product page (woocommerce) 【发布时间】:2014-07-07 16:00:30 【问题描述】:我正在一个运行 wordpress 的网站上做一些工作——木星主题风格的 woocommerce。
问题是我已经向开发人员寻求帮助,但已经有一段时间了。
我正在寻找一种方法将底部的“相关产品”从 2 个增加到 4 个,以便填写模板。
在related.php 中,我以为我找到了更改相关产品数量的值,但我错了。它什么都不做,这对我来说本身就很奇怪。
旧
<?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
您需要编辑括号中的数字以满足您的要求。
【讨论】:
太棒了,我之前在网上找到它后尝试过。但是粘贴的位置也很关键不是吗?因为当我将它粘贴在我的主题 functions.php 的开头时,它并没有为我做任何事情。但是当粘贴到最后它起作用时,我认为这与我在调用函数之前试图覆盖的事实有关? 它不应该有所作为,但是,正如你所说,如果你在其他地方定义了这个函数,然后你在已经定义的函数之前的某个地方重新定义它,是的,它赢了没有效果。很高兴你成功了。以上是关于在单个产品页面上增加相关产品(woocommerce)的主要内容,如果未能解决你的问题,请参考以下文章
在 WooCommerce 的单个产品页面上隐藏某些产品的产品库存
在 Woocommerce 的单个产品页面中添加产品备注字段