Возможно ли запрашивать сообщения в том же порядке, что и назначенные?

У меня есть пользовательское поле с именем type , которое является типом данных «радиокнопки», и у него есть некоторые варианты. Это настраиваемое поле присваивается настраиваемому типу post с именем pproduct .

Например, вот выбор этого настраиваемого поля:

  • RED
  • СИНИЙ
  • ЖЕЛТЫЙ
  • WHITE
  • ЧЕРНЫЙ

Из вышеизложенного можно выбрать только один.

Ниже $args :

  $args = array( 'post_type' => 'pproduct', 'posts_per_page' => -1, 'post_status'=>array('publish'), 'product' => $category->slug , 'meta_query' => array( 'relation' => 'AND', 'type_clause' => array( 'key' => 'type', ), 'order_clause' => array( 'key' => 'order', ), ), 'orderby' => array( 'type_clause' => 'DESC', 'order_clause' => 'ASC', ), ); 

будет запрашивать все сообщения pproduct типа post , и он будет сортировать его по двум настраиваемым полям. Тип и порядок . Он сортирует его в алфавитном порядке.

Можно ли изменить это и отсортировать его в том же порядке, что и назначенные типы ? Кто-нибудь знает, что произойдет, если я не буду использовать порядок? Я вижу, что это приводит сообщения, но что такое «порядок по умолчанию», если он не назначен мной.

EDIT 1: Что-то вроде этого

ОБНОВИТЬ:

Я пропустил ваше требование. Если я получу это прямо сейчас, вы хотите сделать заказ, как вы его назначили в настройке, просто как вы пишете

  • RED
  • СИНИЙ
  • ЖЕЛТЫЙ
  • WHITE
  • ЧЕРНЫЙ

Этого не может быть достигнуто с помощью WP query args, вам нужно будет написать свой собственный запрос к базе данных для достижения этого, потому что запрос должен знать правила заказа, которые заданы вами (он знает, как alpabetical, numeric, date order и т. Д., Которые могут быть просто выведенный из поля).

Однако, если вы можете изменить значения ACF на числовые (например, u've опубликовано в ссылке комментариев), вы выиграете, тогда вам нужно будет создать массив переводов (для перевода числа в название цвета), если вам нужно будет использовать значение как имя цвета / slug , Поэтому в настройках настроек ACF:

  • 1: КРАСНЫЙ
  • 2: ГОЛУБОЙ
  • 3: ЖЕЛТЫЙ
  • 4: БЕЛАЯ
  • 5: ЧЕРНЫЙ

Аргументы запроса останутся такими же (за исключением типа DESC-> ASC), и если вам нужно получить имя из числа, используйте это в цикле:

 $field = get_field_object( 'type' ); $value = $field['value']; $color_name = $field['choices'][ $value ]; // this will be formated $unformated_slug = sanitize_title( $color_name ); // change to lowercase and remove whitespaces etc.. // then you can work with $unformated_slug like your original field value eg: if( $unformated_slug == 'red' ) { /* do something here */ } 

Изменение значений выбора в числах является самым простым способом, что-то другое будет слишком сложным.

Порядок постов по умолчанию – по дате. Если вы хотите настроить свой заказ автоматически для всех запросов или только для пользовательских запросов типа почтового сообщения, см. https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts