我想将Products页面上的Related Products移动到一个带有全宽列的较低位置,所以我在functions.php文件中定义了以下内容来做到这一点;
// Move related products
remove_action('woocommerce_after_single_product_summary','woocommerce_output_related_products',20);
add_action('storefront_before_footer','woocommerce_output_related_products',20);
然而,通过这样做,相关产品现在可能在某个重要循环之外,因为它们现在显示在类别存档页面上。
有没有人知道(a)如何限制输出到产品页面(没有显示:无;在样式表中) - 或 - (b)另一个定义的位置,我可以将内容放在外面(下面) div和可能是侧边栏,但保留相关产品与显示的产品页面的相关性?
我不想尝试重新设计html输出,并且我相信你会明白这样做会产生很大的影响。
我猜想的另一个想法(虽然不是理想或正确的方法),可能是使用jQuery。
答案 0 :(得分:1)
EDITED:这应该将输出限制为产品页面。
remove_action('woocommerce_after_single_product_summary','woocommerce_output_related_products',20);
add_action('storefront_before_footer','woo_related_product_addition');
function woo_related_product_addition() {
global $post;
if (function_exists( 'get_product' )) {
add_action('storefront_before_footer','woocommerce_output_related_products',20);
}
}
如果这对你不起作用......
remove_action('woocommerce_after_single_product_summary','woocommerce_output_related_products',20);
add_action('storefront_before_footer','woo_related_product_addition');
function woo_related_product_addition() {
global $post;
if (function_exists( 'get_product' )) {
$product = get_product( $post->ID );
if ($product->is_type( 'single' || 'grouped' || 'external' || 'variable' )) {
add_action('storefront_before_footer','woocommerce_output_related_products',20);
}
}
}
编辑2:然后您可以通过执行类似的操作从存档页面中删除产品。
remove_action('woocommerce_after_single_product_summary','woo_related_product_removal');
function woo_related_product_removal() {
global $post;
if (function_exists( 'get_product' )) {
$product = get_product( $post->ID );
if (!$product->is_type( 'single' || 'grouped' || 'external' || 'variable' )) {
remove_action('woocommerce_after_single_product_summary','woocommerce_output_related_products',20);
}
}
}