Для товаров есть пользовательское поле Позиция в Категории - "
cat_position", созданное в ACF. У него есть два вложенных поля "Выбор категории" (
cat_position_vybor) и "Номер позиции" (
cat_position_number). В товаре это выглядит так:
Т.е. один товар может принадлежать нескольким категориям, которые указываются в "Выбор категории". И для каждой категории указана своя позиция в "Номер позиции".
Получается, что для каждого товара поле
cat_position это массив, который выглядит примерно так:
$cat_position = (
[0] => Array
(
[cat_position_vybor] => 159
[cat_position_number] => 37
),
[1] => Array
(
[cat_position_vybor] => 160
[cat_position_number] => 37
),
[2] => Array
(
[cat_position_vybor] => 161
[cat_position_number] => 37
),
[3] => Array
(
[cat_position_vybor] => 162
[cat_position_number] => 37
),
...)
Здесь "
cat_position_vybor" это id категорий товара.
В самой категории через шорткод уже вывели соответствующие для категории позиции. Теперь нужно как-то отсортировать товары по вложенному пользовательскому полю "*cat_position_number*".
Так понимаю, что это нужно делать через хук "
pre_get_posts" и параметр "
meta_query". Но не пойму как указать, чтобы сортировалось именно по тем "
cat_position_number", которые соответствуют нужному "
cat_position_vybor", т.е. категории в которой мы сейчас находимся.
[1]:
https://i.stack.imgur.com/GQQNd.png