Wordpress,Woocommerce店面相关产品

时间:2016-05-06 17:26:53

标签: php html wordpress function woocommerce

我想将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。

1 个答案:

答案 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);
    }
}
}