如何使Woocommerce分层导航小部件在产品页面上工作


How to make Woocommerce layered nav widget works on products page

我在商店的侧边栏中添加了Woocommerce分层导航小部件。主页面显示分类,当用户点击某个分类时,页面会显示子分类,选择子分类后,用户会看到产品。

我的问题是分层导航部件只在显示类别的页面上工作。但我想让它只在显示产品的页面上工作。

如果有人知道Woocommerce在哪个功能中选择哪些产品在页面上显示,那将非常有帮助。

谢谢。

UPD:我发现在widgets/class-wc-query.php中的函数get_layered_nav_chosen_attributes() $_GET看起来工作不正确。当我尝试过滤子类别或产品列表中的产品时,我在$_GET中看到以下值:
[q] =>/product-category/category-name/subcategory_name/filter_brand=brand_name
[query_type_brand] => or

当我从类别列表中过滤产品时,我看到filter_brand被正确解析并作为单独的GET参数处理。
如果有人知道是什么问题,请帮助我。

UPD2:此时我有变通办法。在class-wc-widge- layereed -nav.php get_page_base_url()函数后$link计算我添加了假参数,如'a=1'。现在所有必要的参数都被正确解析了。所以现在我还不知道这种行为的根本原因。我是PHP和Wordpress的新手:)

我解决了这个问题。根本原因是错误的nginx配置。

location {
    try_files $uri $uri/ /index.php?q=$uri$args
}

所以我的nginx添加了不必要的$uri。
正确的值是:

try_files $uri $uri/ /index.php?$args