如何在“商店”页面上显示WooCommerce类别而不是产品?

时间:2020-05-22 作者:Ade

安装程序我正在运行:

WooCommerce 4.1.1我正在编写一个自定义主题,通过将自己的模板放置在以下位置来覆盖一些WooCommerce模板:themes/my_theme/woocommerce/template-name.php

我已确定商店页面(主页)使用archive-product.php 并已成功从plugins/woocommerce/templates/archive-product.php 对我的主题进行了一些小的HTML更改,效果很好。我的主题副本中没有任何功能性更改,只有一些HTML。

问题

有一个选项可以将商店页面设置为显示类别而不是产品:

Appearance > Customize > WooCommerce > Catalogue

商店页面显示现在设置为Show Categories

然而,商店主页似乎完全忽略了此设置。WooCommerce自己的模板不遵守此设置,这似乎很奇怪!

如何找到此设置,然后在商店主页上显示类别(缩略图)?

另一方面,店面主题确实尊重设置,但没有模板archive-product.php. 店面上的所有东西都非常模糊,经过多次调试/尝试将其拆开后,我无法发现它用于商店页面的模板文件

1 个回复
SO网友:Ade

我找到了一个可行的解决办法。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();
}
仍然:

我想知道如何选择问题中显示的“show categories”定制设置,因此我的主题对此做出了回应do_shortcode(), 这感觉有点像黑客

相关推荐

Post in multiple categories

我尝试在多个类别中列出帖子。管理面板中一切正常。我进入所有帖子,选择所需的帖子,然后进入编辑并选择一个类别。保存更改后,在“类别”选项卡下会写入旧类别和新类别。现在,当我访问网站并选择更新类别时,只有旧帖子,没有新帖子。例如:我有类别:电影、游戏、最佳和帖子:最佳电影、最佳游戏、最佳,我需要这样:最佳电影属于电影类别最佳游戏属于游戏类别,两者都属于最佳类别我使用日期和职位名称作为永久链接。