Has*_*san 2 wordpress woocommerce
选择按价格排序的选项(Woocommerce 下拉列表)时,要按价格排序的产品,但它无法正常工作;前 6 个排序:
链接到未完成的网站:http : //verduijncichlids.com/product-categorie/vissen-voorraad/west-afrika-cichliden/?orderby=price
任何人都知道发生了什么以及如何解决这个问题?干杯!
Abo*_*ifi 17
对于可能遇到此问题的任何人
根据:https : //woocommerce.wordpress.com/2019/04/01/performance-improvements-in-3-6/
如果您使用“WP All Import”等工具导入产品,则必须在以下位置重新生成“产品查找表”:
WooCommerce > 状态 > 工具 > 产品查找表
如果按价格订购在 WooCommerce 中无法正常工作,安全的解决方案始终是自定义 WooCommerce 处理按价格订购的方式。这是有效的,因为 WooCommerceprice和price-desc是默认订购选项。(在 WordPress v5.4.1 和 WooCommerce v4.1.0 中使用标准主题进行测试):
在你的functions.php中添加:
/**
* Customize ordering by price
*/
add_filter('woocommerce_get_catalog_ordering_args', function ($args) {
$orderby_value = isset($_GET['orderby']) ? wc_clean($_GET['orderby']) : apply_filters('woocommerce_default_catalog_orderby', get_option('woocommerce_default_catalog_orderby'));
if ('price' == $orderby_value) {
$args['orderby'] = 'meta_value_num';
$args['order'] = 'ASC';
$args['meta_key'] = '_price';
}
if ('price-desc' == $orderby_value) {
$args['orderby'] = 'meta_value_num';
$args['order'] = 'DESC';
$args['meta_key'] = '_price';
}
return $args;
});
Run Code Online (Sandbox Code Playgroud)
就像 @Pelmered 提到的那样,使用 'order_by' 选项很重要meta_value_num,因此排序是按数字值而不是字符串值完成的。不过,我将其更改meta_key为“_price”,因为上面使用和提到的 WooCommerce 版本需要这样做。
进一步阅读:
| 归档时间: |
|
| 查看次数: |
9060 次 |
| 最近记录: |