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

2 июл. 2014 г., 21:16:03
Просмотры: 69.6K
Голосов: 14

У меня есть произвольный тип записи email_block и пользовательская таксономия block_type. Мне нужно перебрать все email блоки и определить, к какой пользовательской таксономии (block_type) они относятся. Я знаю, как получить все произвольные типы записей email_block, но испытываю трудности с определением того, к какому block_type они принадлежат.

Вот код, который у меня есть на данный момент. Я использую поле отношений из плагина Advanced Custom Fields для фильтрации email блоков, которые я хочу отобразить.

<?php

$posts = get_field('block_selector');

if( $posts ): ?>
    <ul>
    <?php foreach( $posts as $post): // переменная должна называться $post (ВАЖНО) ?>
        <?php setup_postdata($post); ?>
        <li>
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            <span>Произвольное поле из $post: <?php the_field('author'); ?></span>
        </li>
    <?php endforeach; ?>
    </ul>
    <?php wp_reset_postdata(); // ВАЖНО - сбрасываем объект $post, чтобы оставшаяся часть страницы работала корректно 
    endif; ?>
0
Все ответы на вопрос 2
2
37

Вы имеете в виду get_the_terms()?

<?php 
    // Получаем термины таксономии 'block_type' для текущего поста
    $terms = get_the_terms( $post->ID, 'block_type' ); 
    // Перебираем все полученные термины
    foreach($terms as $term) {
      // Выводим название каждого термина
      echo $term->name;
    }
?>

Или я слишком упростил этот пример?

2 июл. 2014 г. 21:47:27
Комментарии

Нет, это именно то, что я искал! Спасибо :)

imz imz
3 июл. 2014 г. 01:12:34

Есть ли способ узнать иерархию пользовательских таксономий и передать её в вывод?

dubbs dubbs
19 нояб. 2022 г. 09:47:07
2

это лучший способ сделать это

<?php
            $taxonomy = 'movies-category';
            $terms = get_object_term_cache( $post->ID, $taxonomy );
            $output = '';
            foreach($terms as $term) {
                if(!empty($output))
                    $output .= ' | ';
                    $output .= '<span class="cat"><a href="'. esc_url( get_term_link( $term )). '">'.$term->name.'</a></span>';
                }
            echo $output;
        ?>
13 апр. 2020 г. 16:22:32
Комментарии

Есть ли способ узнать иерархию пользовательских таксономий и передать ее в вывод?

dubbs dubbs
19 нояб. 2022 г. 09:46:49

Вы можете ознакомиться с этим материалом: https://developer.wordpress.org/reference/functions/get_term_parents_list/

Или https://wordpress.stackexchange.com/a/25035/185919

Mohamed Slimane Mohamed Slimane
20 нояб. 2022 г. 11:01:46