Почему товары отсортированы некорректно (ASC)?

Добрый вечер! В стандартном цикле вывода товаров woocommerce, сортировка ASC выглядит вот так:

teatro no.1
teatro no.10
teatro no.2

Это название товаров, и система почему-то думает, что 2 больше, чем 10. Я в принципе догадываюсь почему, но наверняка не знаю, поскольку не знаком с принципом ASC DESC сортировки.
  • Вопрос задан
  • 225 просмотров
Решения вопроса 2
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
потому что в данном случае сперва отсортирует по первому символу в тексте, потом по второму.

к слову - костыль
ORDER BY LENGTH(tovar), tovar
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
это строки. сравнение происходит посимвольно. То есть символ "2" больше чем символ "1" а длина строки не влияет на порядок.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
А по какому свойству у вас там сортировка? Если по одному из meta, то meta_value_num должен решить вопрос:
function custom_woocommerce_catalog_orderby( $args ) {

    $args['meta_key'] = '_price';
    $args['orderby'] = 'meta_value_num'; // работать со значениями как с числовыми
    $args['order'] = 'asc'; 

    return $args;
}
add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_catalog_orderby' );
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы