Как получить единственное имя пользовательской таксономии?


У меня есть что-то вроде этого:

$taxonomies = get_object_taxonomies('my_post_type');

foreach($taxonomies as $tax){

  $args['labels'] = get_taxonomy_labels( (object) $args );
  $args['label'] = $args['labels']->singular_name;
  echo $args['label'];

}

, который каждый раз дает мне "Тег" для post_tags, но также и для всех других (пользовательских) таксономий. Как я могу получить ярлык для каждого налога в размере $?

Спасибо

Ps: под меткой я подразумеваю метки, которые я регистрирую при создании своей пользовательской таксономии, подобной этой $labels = array( 'name' => my_custom_taxonomies, 'singular_name' => my_custom_taxonomy );

Author: Lore, 2016-09-13

2 answers

РЕДАКТИРОВАТЬ Поскольку сначала я неправильно понял ваш вопрос, вот обновление, которое должно делать то, что вы хотите.

$taxonomies = get_object_taxonomies( 'my_post_type', 'object' );

foreach($taxonomies as $tax){

  echo $tax->labels->singular_name;

}

В принципе, вам нужно указать функции get_object_taxonomies, что вы хотите, чтобы объект возвращался.

В вашей функции я не уверен, откуда $args берется и помещается как есть, это не может работать.

Наконец, используйте правильный синтаксис для работы с объектом. Вы получаете доступ к свойству объекта с помощью ->


ОРИГИНАЛ

Я поверьте, вы ищете get_terms() функция. Таким образом, у вас будет что-то вроде этого:

// Retrieve the taxonomies for your custom post type
$cpt_taxes = get_object_taxonomies( 'my_post_type', 'object' );

// Build an array of taxonomies slugs to be used in our $args array below to filter only taxes we need.
foreach( $cpt_taxes as $cpt_tax ){
  $taxonomies[] = $cpt_tax->name;
}

// Supply our $args array for the get_terms() function with our newly created $taxonomies array.
$args = array( 
  'taxonomy' => $taxonomies,
  'hide_empty' => false,      
);
$terms = get_terms( $args );


// Go over the results of the get_terms function and echo each term name.
foreach( $terms as $term ){

  echo $term->name;

}
 3
Author: bynicolas, 2016-09-13 14:40:13

Так вот, я не очень хорошо разбираюсь в терминах объекта, объекта, поэтому, пожалуйста, будьте добры.. @Это вернет вам то, что вы сделали после, но не на 100% уверены, что это правильный путь, открытый для улучшения от профессионала:)

$taxonomies = get_object_taxonomies('dt_properties');

foreach($taxonomies as $tax) {
       $each_tax = get_taxonomy($tax);
       echo '<pre>';
       print_r($each_tax->labels->singular_name);
       echo '</pre>';
}
 0
Author: Malisa, 2016-09-13 13:54:44