当前,如果我们使用类似[products paginate="true" limit="30" on_sale="true"]
的短代码,但没有可显示的产品,则不会返回任何内容。没有类似No products founds
的信息。我想修改这个功能
我发现了一个woocommerce_shortcode_products_query_results
过滤器,乍一看可以更改它,但我不确定这是否是修改的正确方法
add_filter('woocommerce_shortcode_products_query_results', function ($results) {
if (!empty($results->ids)) {
return $results;
} else {
echo 'No products found';
}
});
我应该采取不同的做法吗?还有更好、更灵活的方法吗?如果是,如何?
由于@CBroe将他的答案作为评论发布,我决定将其复制为正确的答案,这样其他用户会更容易找到它:
否,该过滤器用于操作首先选择产品的数据库查询。我认为
woocommerce_shortcode_products_loop_no_results
是你应该关注的。https://github.com/woocommerce/woocommerce/blob/master/includes/shortcodes/class-wc-shortcode-products.php#L680当没有找到产品时,输出您想要显示的任何消息。