我见过this question and answer。那是行不通的。
我正在跑步:
我有一个自定义主题,可以通过将自己的模板放在以下内容中来覆盖某些WooCommerce模板: themes / my_theme / woocommerce / template-name.php
我已经确定商店页面(主页)使用模板 archive-product.php 。我已将此文件从 plugins / woocommerce / templates / archive-product.php 复制到我的主题中,并进行了一些小的HTML更改,这些更改非常有效。我的主题副本没有任何功能更改,只有一些HTML。
我希望主页仅以缩略图显示商店类别。有一个选项可以将商店页面设置为显示类别而不是产品:
外观>自定义> WooCommerce>目录
商店页面显示已设置为显示类别
但是,商店首页似乎完全忽略了此设置,并且仍显示商品。 WooCommerce的自己的模板不接受此设置,似乎很奇怪!
如何在模板中找到此设置,然后在商店首页上显示类别(作为缩略图)?
循环类别是否与woocommerce_product_loop()
等效?
作为一个补充说明,Storefront主题确实支持该设置,但Storefront没有模板 archive-product.php 。店面似乎是高度抽象的,并且在对其进行大量调试/试图将其拆开后,到目前为止,我还没有弄清楚店面使用的模板文件。
我的主题已经在生产中,我只想进行更新,以便主页显示类别,而不是直接进入产品列表。
答案 0 :(得分:0)
我找到了可行的解决方案。 WooCommerce默认模板不支持在“商店”页面上显示类别的设置。
但是,使用带有do_shortcode()
的简码以及满足以下条件的条件:
if (is_shop()) {
echo do_shortcode('[product_categories hide_empty="0"]');
} else {
woocommerce_product_loop_start();
if ( wc_get_loop_prop( 'total' ) ) {
while ( have_posts() ) {
the_post();
/**
* Hook: woocommerce_shop_loop.
*/
do_action( 'woocommerce_shop_loop' );
wc_get_template_part( 'content', 'product' );
}
}
woocommerce_product_loop_end();
}
还是:
do_shortcode()
更好的方法了,这感觉有点破烂