如何显示帖子的类别?(自定义帖子类型)

时间:2017-01-15 作者:Archangel17

首先,我不是一个真正的程序员,我只是需要帮助,因为我目前正在修改我购买的主题。

正如标题所说,我想显示一篇文章的类别(自定义文章)。以下是我找到并使用的代码:

<?php $terms = get_the_terms( $post->ID , \'tvshows_categories\' ); 
foreach ( $terms as $term ) {
    $term_link = get_term_link( $term, \'tvshows_categories\' );
    if( is_wp_error( $term_link ) )
        continue;
    echo \'<a href="\' . $term_link . \'">\' . $term->name . \'</a>, \';
} 
?>
它工作,但我得到一个错误,如果它显示在不同的自定义帖子。

Warning: Invalid argument supplied for foreach()
有没有更好的代码来显示自定义帖子的类别,如果它不显示类别,就不会给我任何错误?

附:我实际上并没有在帖子上使用它,而是在标签上使用它。php(im使用3个自定义帖子类型的默认标记)。

请原谅我的英语。非常感谢。

1 个回复
最合适的回答,由SO网友:Tunji 整理而成

get_the_terms 成功时返回WP\\u Term对象数组,如果没有术语或post不存在,则返回false,失败时返回WP\\u Error。

您可以随时检查$terms 是数组或is_wp_error.

To check if $terms is an array:

<?php $terms = get_the_terms( $post->ID , \'tvshows_categories\' );
if ( is_array( $terms ) && ! is_wp_error( $terms ) ) {
    foreach ($terms as $term) {
        $term_link = get_term_link($term, \'tvshows_categories\');
        if (is_wp_error($term_link))
            continue;
        echo \'<a href="\' . $term_link . \'">\' . $term->name . \'</a>, \';
    }
}
?>
或者,如果您在一篇文章中,您可以随时检查您是否在自定义文章类型中。

To check if you\'re on a custom post type on a single page:

<?php 
if ( is_singular(\'YOUR_CUSTOM_POST_TYPE\') ) {
    $terms = get_the_terms($post->ID, \'tvshows_categories\');
    foreach ($terms as $term) {
        $term_link = get_term_link($term, \'tvshows_categories\');
        if (is_wp_error($term_link))
            continue;
        echo \'<a href="\' . $term_link . \'">\' . $term->name . \'</a>, \';
    }
}
?>