@alskorpius

Как получить кастомное поле таксономии на странице другой таксономии?

У меня есть 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();
  • Вопрос задан
  • 30 просмотров
Решения вопроса 1
@alskorpius Автор вопроса
решение оказалось простое до безобразия:
<?php the_field('familiya', $term); ?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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