У меня есть 2 таксономии и один кастомный тип данных:
Таксономия: Врачи
Таксономия: Категории услуг
Кастомный тип: Услуги
На странице категории услуг я в цикле выбираю все посты и по этим постам получаю список врачей. Далее пытаюсь вывести кастомные поля врачей, но ни при каких манипуляциях данные не передаются. Проверял по переменной, ID врача передает правильно.
// получаю ID текущей категории
$cat_id_doc = get_queried_object()->term_id;
$args = array(
'posts_per_page' => 5,
'tax_query' => array(
array(
'taxonomy' => 'uslugi',
'field' => 'id',
'terms' => array( $cat_id_doc ) //ID текущей категории
)
)
);
$query = new WP_Query( $args );
// выбираю циклом всепосты которые привязаны к текущей категории
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
//выбираю циклом всех врачей, которые привязаны к постам категории
$product_terms = wp_get_object_terms($post->ID, 'vrachi');
if( $product_terms && ! is_wp_error($product_terms) ){
foreach( $product_terms as $term ){
//получаю название врача, для проверки на дубли
$namedoc = $term->name;
//Пробовал так получать ID врача для кастомных полей - НЕ ВЫДАЕТ
$term_doc = get_queried_object()->term_id;
//так тоже пробовал получать ID - НЕ ВЫДАЕТ
$term_doc2 = get_queried_object();
//а вот так получаю ID врача
$nameid = $term->term_id;
// Получаем и записываем значения произвольных полей в переменные
$familiya = get_field('familiya', $nameid);
//делаю проверку, если врач уже был то не пропускаю
if (in_array($namedoc, $termini_massiv)) {
} else {
echo get_term_link($term); // - ссылка на врача - ВЫВОДИТ
echo $familiya; //- кастомное поле врача - НЕ ВЫВОДИТ
}
//добавляю название текущего в массив, чтобы проверить при следующем цикле
$termini_massiv[] = $term->name;
}
}
}
} else {
// Постов не найдено
}
// Возвращаем оригинальные данные поста. Сбрасываем $post.
wp_reset_postdata();