Перечислите все таксономии, назначенные для пользовательского типа сообщения - PullRequest
0 голосов
/ 22 ноября 2018

Я действительно отчаянно нуждаюсь в помощи, пытаюсь сделать это со вчерашнего дня и до сих пор не получилось, поэтому вот чего я хочу достичь

Коллекция = пользовательский тип сообщения

  • Материал = пользовательская таксономия, присвоенная «коллекции»

    • Mat1 = термин
    • Mat2 = термин
  • Тело = пользовательская таксономия, присвоенная "коллекции"

    • Тело1 = терм
    • Тело 2 = терм
  • Цвет = пользовательская таксономия, присвоенная «коллекции»

    • Цвет1 = термин
    • Цвет2 = термин

Структура будет выглядеть примерно так

- Material
  - Mat1
  - Mat2
- Body
  - Body1
  - Body2
- Color
  - Color1
  - Color2

Я получил этот код, но он совсем не работает

$post_type = 'collection';
$taxonomies = get_object_taxonomies( (object) array( 'post_type' => $post_type, 'hide_empty' => true ) );

foreach( $taxonomies as $taxonomy ){
    echo $taxonomy->name;

    $terms = get_terms( $taxonomy );
    foreach( $terms as $term ){
        echo '<li>';
        echo $term->name;
        echo '</li>';
    }
}

1 Ответ

0 голосов
/ 22 ноября 2018

Если вы посмотрите на документацию для get_object_taxonomies(), вы заметите несколько вещей, а именно, что для ваших целей вы захотите передать имя типа записи в качестве первого аргумента, иполучить объекты со вторым.Также кажется, что вы объединяете аргументы для get_object_taxonomies() и get_terms().

Также с функцией get_terms(), если вы используете WP 4.5 или выше, вызахочу передать таксономию в массиве $args.

$taxonomies = get_object_taxonomies( 'collection', 'objects' );

foreach( $taxonomies as $taxonomy ){
    echo $taxonomy->name;

    $terms = get_terms(array(
        'taxonomy' => $taxonomy->name,
        'hide_empty' => false,
    ));

    foreach( $terms as $term ){
        echo "<li>{$term->name}</li>";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...