nor1m
@nor1m
web-developer

Как сделать сортировку по кастомному полю?

Пытаюсь отсортировать категории по мета-полю position, но проблема в том, что если сортировать по мета полю, то запрос не будет учитывать другие категории без этого мета-поля.

Пробовал так:
$categories = get_terms([
            'taxonomy' => 'nwb_cat',
            'hide_empty' => false,
            'meta_query' => [
                'relation'     => 'OR',
                'position' => [
                    'key' => 'position',
                    'compare' => 'EXISTS'
                ],
                'position_not' => [
                    'key' => 'position',
                    'compare' => 'NOT EXISTS'
                ],
            ],
            'orderby' => [
                'position'  => 'ASC',
            ]
        ]);

Результат: сортировка не происходит

Пробовал так:
$categories = get_terms([
            'taxonomy' => 'nwb_cat',
            'hide_empty' => false,
            'orderby' => 'meta_value_num',
            'order' => 'ASC',
            'meta_key' => 'position',
        ]);

Результат: сортировка работает верно, но выводятся только те категории, у которых есть мета-поле position.

PS. По умолчанию это поле не будет заполнено.

Как можно решить этот вопрос ?
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Попробуйте

'orderby' => [
    'position' => 'DESC',
    'position_not' => 'ASC',
]
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы