Получить родительскую категорию для CPT - PullRequest
0 голосов
/ 30 марта 2020

Я работаю над страницей указателя, в которой перечислены все сообщения для пользовательского типа сообщения. Я перечислял категории для каждого сообщения, используя <?php echo strip_tags(get_the_term_list( $post->ID, 'genre', ' ',' &#8226; ')); ?>.

. Нам нужно добавить подкатегории, но я не хочу, чтобы они отображались на странице индекса - только родительская категория. Попробовал использовать get_term_parents_list и несколько других примеров, но ничего не получилось.

Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 30 марта 2020

Вы можете использовать фильтр get_the_terms, чтобы изменить условия возврата.

add_filter('get_the_terms', 'only_parent_genre', 10, 3);
function only_parent_genre($terms, $post_id, $taxonomy) {

    // TODO for you : Add condition to heck if you are not on your custom index too.
    if(is_admin() || $taxonomy !== 'genre') {
        return $terms;
    }

    // Loop over terms and if parent is something different than 0, it means that's its a child term
    foreach($terms as $key => $term) {
        if($term->parent !== 0) {
            unset($terms[$key]);
        }
    }

    return $terms;
}
...