Получить имена таксономий по ID записи

22 сент. 2014 г., 09:23:06
Просмотры: 88.6K
Голосов: 8

Я пытаюсь создать отдельную страницу, где отображаются несколько записей на одной странице. Пока всё хорошо, всё работает. Сейчас я отображаю записи в цикле foreach, где проверяю, связаны ли они со страницей.

Мне нужно что-то вроде wp_get_post_terms($post->ID);, но это не работает. Есть custom registered_taxonomy (пользовательские зарегистрированные таксономии).

Так как я могу получить все taxonomy names (имена таксономий) по $post->ID?

1
Комментарии

Значит, вам нужен не список терминов, а список таксономий, к которым относятся эти термины, прикреплённые к записи?

Pieter Goosen Pieter Goosen
22 сент. 2014 г. 10:03:00
Все ответы на вопрос 4
2
10

Ох, спасибо за советы и помощь (Роберт + Питер). Термин сбил меня с толку :) Вот что сработало для меня:

$taxonomies=get_taxonomies('','names');
wp_get_post_terms($post->ID, $taxonomies,  array("fields" => "names"));
22 сент. 2014 г. 10:09:37
Комментарии

Вам стоит посмотреть мой ответ здесь по поводу таксономий. Это должно помочь вам разобраться, что к чему. Не забудьте принять собственный ответ

Pieter Goosen Pieter Goosen
22 сент. 2014 г. 10:11:52

@PieterGoosen спасибо за ваш комментарий и ссылку на тот ответ!

caramba caramba
22 сент. 2014 г. 10:14:19
0

Для любого пользовательского типа записи вы можете легко получить список таксономий текущей записи. Скопируйте и вставьте следующий код:

<?php if(have_posts()) : the_post();  
    $post_type = get_post_type(get_the_ID());   
    $taxonomies = get_object_taxonomies($post_type);   
    $taxonomy_names = wp_get_object_terms(get_the_ID(), $taxonomies,  array("fields" => "names")); 
    if(!empty($taxonomy_names)) :
       foreach($taxonomy_names as $tax_name) : ?>              
          <p><?php echo $tax_name; ?> </p>
       <?php endforeach;
    endif;
endif;  ?>   
27 нояб. 2019 г. 06:50:37
4

Попробуйте get_the_term_list

<?php echo get_the_term_list( $post->ID, 'taxonomy', '', ', ' ); ?>

Вы можете использовать этот код внутри цикла. Также замените "taxonomy" в коде выше на название вашей таксономии.

22 сент. 2014 г. 09:30:31
Комментарии

выдает ошибку: object(WP_Error)#2386 (2) { ["errors":"WP_Error":private]=> array(1) { ["invalid_taxonomy"]=>...

caramba caramba
22 сент. 2014 г. 09:35:25

Вам нужно изменить Name of the taxonomy в приведенном выше коде.

Robert hue Robert hue
22 сент. 2014 г. 09:36:24

Есть несколько названий таксономий, и я пытаюсь выяснить, какие именно имена у них..

caramba caramba
22 сент. 2014 г. 09:38:02

Отличное решение! Просто и чисто!

Himechi90 Himechi90
4 сент. 2020 г. 06:52:29
0
$term_list = get_the_terms($post->ID, 'ваша_таксономия');
$types ='';
foreach($term_list as $term_single) {
     $types .= ucfirst($term_single->slug).', ';
}
$typesz = rtrim($types, ', ');
echo $typesz;
26 июл. 2019 г. 21:22:04