WordPress - Пользовательские таксономии на CPT отображаются некорректно

У меня есть настраиваемый тип сообщения под названием «активность» и настраиваемая таксономия под названием «category_activity».

На single-activity.php я хочу отобразить текущую таксономию. На данный момент отображаются все таксономии, даже если они не добавлены в сообщение.

single-activity.php:

$taxonomy = 'category_activity';
$terms = get_terms($taxonomy);
if ( $terms ) {
    foreach ( $terms as $term ) { echo $term->name; }
}

Должно отображаться: "Название таксономии 1".

В настоящее время отображается: «Название таксономии 1 Название таксономии 2 Название таксономии 3».

Регистрация в таксономии:

function cptui_register_my_taxes_category_activity() {

$labels = array(
    "name" => __( 'Things Categories', '' ),
    "singular_name" => __( 'Things Category', '' ),
);

$args = array(
    "label" => __( 'Things Categories', '' ),
    "labels" => $labels,
    "public" => true,
    "hierarchical" => true,
    "label" => "Things Categories",
    "show_ui" => true,
    "show_in_menu" => true,
    "show_in_nav_menus" => true,
    "query_var" => true,
    "rewrite" => array( 'slug' => 'things-to-do/category', 'with_front' => false, ),
    "show_admin_column" => false,
    "show_in_rest" => false,
    "rest_base" => "",
    "show_in_quick_edit" => false,
);
register_taxonomy( "category_activity", array( "activity" ), $args );
}
add_action( 'init', 'cptui_register_my_taxes_category_activity' );

Спасибо за помощь.

РЕДАКТИРОВАТЬ - я работал с:

$category = wp_get_post_terms($post->ID, 'category_activity');
echo $category[0]->name;

person Klayemore    schedule 02.06.2017    source источник


Ответы (1)


В вашем случае было бы лучше использовать wp_get_post_terms: https://codex.wordpress.org/Function_Reference/wp_get_post_terms

<?php $terms = wp_get_post_terms( $post_id, $taxonomy, $args ); ?>
person jacman    schedule 02.06.2017