提问者:小点点

Woocommerce更改产品样式并将其显示在页面上


对不起,我的英语很接近。我想更改woocommerce上特定产品类别的产品页面样式(不显示图片和其他一些重要的布局更改)。我已经做到了,而且它可以工作,问题是我想在一个页面上显示这些产品。我尝试使用woocommerce集成的短代码[product_page id=$id],问题是我在单个产品上创建的自定义样式和布局。php(在woocommerce文件夹中)不使用此短代码应用。我试图在ws类短代码上复制脚本。php(woocommerce文件夹),但它不起作用。我应该如何在特定页面上显示产品,使用这些产品页面的真实样式(我创建的自定义页面),而不是woocommerce短代码页面?

提前感谢您的回答


共3个答案

匿名用户

有两种方法可以实现这一点,它只是取决于您想要编辑single-product.php还是content-single-product.php。两者都会让你得到相同的最终结果。

要做到前者,您可以使用默认的WordPress功能,并通过template_include在给定条件下过滤模板

add_filter( 'template_include', 'so_29984159_custom_category_template' );
function so_29984159_custom_category_template( $template ){
    if ( is_single() && get_post_type() == 'product' && has_term( 'custom_category', 'product_cat' ) ) {
        $template = locate_template( 'single-product-custom.php' );
    }
    return $template;
}

或者如果你想创建一个定制的内容产品。phptemplate部分,您可以使用WooCommerce的wc\u get\u template\u部分,其工作方式基本相同。从技术上讲,我认为您可以使用相同的条件逻辑,但我在这里对其进行了调整,以指出WooCommerce在过滤器上提供的变量。

add_filter( 'wc_get_template_part', 'so_29984159_custom_content_template_part', 10, 3 );
function so_29984159_custom_content_template_part( $template, $slug, $name ){
    if ( $slug == 'content' && $name == 'product' && has_term( 'custom_category', 'product_cat' ) ) {
        $template = locate_template( 'content-product-custom.php' );
    }
    return $template;
}

在这两种情况下,单一产品定制。php内容产品定制。php将位于主题的根文件夹中。要将它们放在其他地方,只需更改locate\u template()参数中的路径。

匿名用户

你不能在wordpress的文件中编码,即page.php修改wooCommerce页面。它的错误的方式。您只需将WooCommerce页面重写到您的主题文件夹中,然后修改您想要做的任何页面。所有的模板/页面都位于WooCommerce/模板文件夹中。

在这里您可以找到文档。

 http://docs.woothemes.com/document/template-structure/

匿名用户

编辑单个产品的商业/模板/内容。用于单一产品视图的php

相关问题