В пользовательском типе сообщения (пациент) у меня есть настраиваемое поле, которое является другим объектом сообщения типа (комната).Он выглядит как выпадающий список на WP-admin и перечисляет все комнаты.Я пытаюсь ограничить количество номеров в зависимости от их категории, поэтому будут отображаться только номера категории «свободные».Довольно прямолинейно.
Вот код, который я использую
add_filter('acf/load_field/name=room', 'populateRooms');
function populateRooms($field)
{
$field['choices'] = array();
wp_reset_query();
$query = new WP_Query(array(
'post_type' => 'room',
'orderby' => 'menu_order',
'order' => 'ASC',
'posts_per_page' => -1,
'tax_query' => array(
array(
'taxonomy' => 'room_category',
'field'=>'slug',
'terms' => 'vacant',
)
)
));
$field['choices'] = array();
foreach ($query->posts as $room_id => $matched_room) {
$choices[$matched_room->ID] = $matched_room->post_title;
}
if (is_array($choices)) {
foreach ($choices as $key => $choice) {
$field['choices'][$key] = $choice;
}
}
wp_reset_query();
return $field;
}
Когда я загружаю страницу, появляются все комнаты, включая те, которые не относятся к категории «свободные», то естьне то, что я хочу.Когда я повторяю выбор $, я получаю это:
, который показывает post_ID -> post_title, как и ожидалось.Однако отображаются все комнаты, а не только эти 3.
Что я здесь не так делаю?