我得到了一个暂时没有更新的网站:它有WP 4.9.15和WooCommerce 2.6.14
现在我做了一个现场测试,更新了所有这些内容,现在我有了WP 5.4.2和WC 4.3.1
有一件事被打破了,我无法理解为什么页面按类别显示产品:它们有一个三级分类树。它的工作方式是这样的:如果所问的类别是一片叶子,页面会显示产品列表。如果不是叶子,它会显示所有的子类别。
执行此操作的模板页是archive-product.php
它有一个简单的循环来显示所有内容:
<h1 class="page-title"><?php woocommerce_page_title(); ?></h1>
<?php if ( have_posts() ) : ?>
<?php
/**
* woocommerce_before_shop_loop hook
*
* @hooked woocommerce_result_count - 20
* @hooked woocommerce_catalog_ordering - 30
*/
do_action( \'woocommerce_before_shop_loop\' );
?>
<?php woocommerce_product_loop_start(); ?>
<?php woocommerce_product_subcategories(); ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php wc_get_template_part( \'content\', \'product\' ); ?>
<?php endwhile; // end of the loop. ?>
<?php woocommerce_product_loop_end(); ?>
<?php
/**
* woocommerce_after_shop_loop hook
*
* @hooked woocommerce_pagination - 10
*/
do_action( \'woocommerce_after_shop_loop\' );
?>
<?php elseif ( ! woocommerce_product_subcategories( array( \'before\' => woocommerce_product_loop_start( false ), \'after\' => woocommerce_product_loop_end( false ) ) ) ) : ?>
<?php wc_get_template( \'loop/no-products-found.php\' ); ?>
<?php endif; ?>
现在,只有当请求的类别是叶子时,此页面才起作用,因此它必须显示产品列表。如果请求的类别不是叶,则不显示子类别,页面为空,仅显示类别名称(page\\u title)。因此,这意味着查询在某种程度上做得很好,但为什么不显示类别呢?如果你能帮我解决这个麻烦,谢谢你