Задать вопрос

Woocommerce получить первые 4 популярных продукта отсортированные по аттрибуту?

Есть список товаров. Можно ли запросом отсортировать товары по его атрибуту?
В атрибуте содержится количество загрузок. Соответственно нужно вывести первые 4 товара с самыми большими загрузками.
Пробывал следующий код

$args = array(
                'post_type' => 'product',
                'posts_per_page' => 4,
                'meta_query' => [
                        'key' => 'pa_install',
                        'field' => 'slug',
                        'orderby' => 'slug',
                        'order' => 'desc',
                ],
            );


И так
$args = array(
            'tax_query' => array(
                array(
                    'taxonomy' => 'pa_install',
                    'field' => 'slug', 
                    'orderby' => 'slug',
                    'order' => 'desc',
                )),
            'posts_per_page' => '4', 
            'post_type' => 'product',
            );


Возможно ли получить результат?
  • Вопрос задан
  • 102 просмотра
Подписаться 3 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
Palych_tw
@Palych_tw
Типа веб-разработчик
Скорее всего, вы никак не зададите порядок товаров по значению атрибута. Дело в том, что в tax_query нет опции order, а значения атрибута - это термины внутри таксономии 'pa_install'. Можете попробовать либо написать свой SQL запрос через $wpdb либо же сохранить количество загрузок еще просто в мета поле товара, и сделать 'meta_query' (сейчас этот запрос бессмысленен). И да, точно ли количество загрузок хранится как атрибут товара и для чего вообще так было делать?)
Ответ написан
Ваш ответ на вопрос

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

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