Как получить единственное имя пользовательской таксономии?
У меня есть что-то вроде этого:
$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
);
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;
}
Так вот, я не очень хорошо разбираюсь в терминах объекта, объекта, поэтому, пожалуйста, будьте добры.. @Это вернет вам то, что вы сделали после, но не на 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>';
}