使用 Get 请求获取 Woocommerce 产品类别档案的促销产品
Get on sale products for Woocommerce product category archives using a Get request
我希望能够只显示我网站上所有类别的促销产品。我看到你可以使用 Woocommerce shortcodes.
但是我的 Wordpress 主题是动态的(它适用于所有产品类别),我无法真正为每个产品类别使用短代码创建一个页面(某些类别是在我添加时创建 "on the go"新产品)。
有什么方法可以简单地使用查询字符串 return 仅包含促销产品的类别?
例如:https://www.website.com/clothing/dresses?on_sale=true
---编辑:---
我没有使用短代码,只是想要一个查询参数的简单解决方案。
忘了说,在我的案例中,无论是否打折,我总是在“_regular_price”和“_sale_price”上有值。以下是示例:
产品特价中(价格不同):
产品不促销(价格相同):
您需要通过 pre_get_posts 过滤器更改主查询。
add_action( 'pre_get_posts', 'modify_query_show_on_sale_products' );
function modify_query_show_on_sale_products( $query ) {
if( ! is_admin() && $query->is_main_query() && $query->query_vars['wc_query'] == 'product_query' ) {
$query->set('meta_key', '_sale_price');
$query->set('meta_value', '0');
$query->set('meta_compare', '>=');
}
}
我希望能够只显示我网站上所有类别的促销产品。我看到你可以使用 Woocommerce shortcodes.
但是我的 Wordpress 主题是动态的(它适用于所有产品类别),我无法真正为每个产品类别使用短代码创建一个页面(某些类别是在我添加时创建 "on the go"新产品)。
有什么方法可以简单地使用查询字符串 return 仅包含促销产品的类别?
例如:https://www.website.com/clothing/dresses?on_sale=true
---编辑:---
我没有使用短代码,只是想要一个查询参数的简单解决方案。
忘了说,在我的案例中,无论是否打折,我总是在“_regular_price”和“_sale_price”上有值。以下是示例:
产品特价中(价格不同):
产品不促销(价格相同):
您需要通过 pre_get_posts 过滤器更改主查询。
add_action( 'pre_get_posts', 'modify_query_show_on_sale_products' );
function modify_query_show_on_sale_products( $query ) {
if( ! is_admin() && $query->is_main_query() && $query->query_vars['wc_query'] == 'product_query' ) {
$query->set('meta_key', '_sale_price');
$query->set('meta_value', '0');
$query->set('meta_compare', '>=');
}
}