Получите термин id, относящийся к пользовательской таксономии, на пользовательской странице шаблона one-post-type.php

У меня есть специальная пост-типовая «проповедь» с прикрепленным к ней пользовательским таксономии «спикер». Я хотел назначить настраиваемые метазначения для таксономии динамиков, поэтому я использую метаклассу таксономии от Rilwis:

http://www.deluxeblogtips.com/p/taxonomy-meta-script-for-wordpress.html

Я использовал класс для добавления метабокса с идентификатором «bio».

Согласно его указаниям, мне нужно использовать следующий код, чтобы вывести значение «био» мета в мой шаблон:

$meta = get_option('meta_id'); if (empty($meta)) $meta = array(); if (!is_array($meta)) $meta = (array) $meta; $meta = isset($meta['term_id']) ? $meta['term_id'] : array(); $value = $meta['field_id']; echo $value; // if you want to show 

Вот что для меня закончилось:

 $taxmeta = get_option('speaker_meta'); if (empty($taxmeta)) $taxmeta = array(); if (!is_array($taxmeta)) $taxmeta = (array) $meta; $taxmeta = isset($taxmeta['221']) ? $taxmeta['221'] : array(); $value = $taxmeta['bio']; echo $value; // if you want to show 

Вопрос

В приведенном выше коде вы видите номер «221». Это фактический термин-идентификатор таксономии, назначенной на эту должность (жестко запрограммированный для ее проверки). Я не понимаю, как динамически заполнять term_id.

Я не могу запросить URL-адрес, потому что это просто используется на пользовательской одностраничной странице, так что термин-идентификатор там недоступен.

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

благодаря

редактировать

Эта функция возвращает мне правильный term_id:

 $terms = wp_get_post_terms($post->ID, "speaker"); foreach ($terms as $termid) { echo $termid->term_id; } 

Использование этого фрагмента в моем цикле на моей странице примера возвращает значение «221». Если я вручную помещаю 221 вместо term_id в функцию, тогда он действительно отлично подходит для выражения meta 'bio'.

Где я все еще застрял

Теперь, когда у меня есть этот небольшой фрагмент, над которым работает, как мне получить его для вывода в term_id, чтобы основная функция работала?

 $meta = isset($meta['term_id']) ? $meta['term_id'] : array(); 

еще раз спасибо

Solutions Collecting From Web of "Получите термин id, относящийся к пользовательской таксономии, на пользовательской странице шаблона one-post-type.php"

вы можете использовать get_the_terms() чтобы получить условия этого сообщения в определенной таксономии:

 $terms = get_the_terms( $post->ID , 'speaker' ); //change speaker to whatever you call your taxonomy //then you can use just the first term $term_id = $terms[0]->term_id; 

и теперь у вас есть термин id внутри $term_id .

Обновить

Когда у вас есть term_id, вы можете использовать его в своей функции следующим образом:

 $term_id = $termid->term_id; $meta = isset($meta[$term_id]) ? $meta[$term_id] : array(); 

Вы также можете сделать это с wp_get_post_terms() функции wp_get_post_terms() :

 $terms = wp_get_post_terms($post->ID, "speaker"); foreach ($terms as $termid) { echo $termid->term_id; } 

он отобразит все термины таксономии для текущего поста.

ПРИМЕЧАНИЕ: он должен находиться внутри петли

Если вы находитесь на странице archive.php и нуждаетесь в текущем члене:

 var_dump($wp_query->queried_object); var_dump($wp_query->queried_object->name); var_dump($wp_query->queried_object->term_id);