无法使用Get_the_Terms显示多个术语

时间:2020-08-11 作者:Paul G

我试图显示单个帖子的术语(来自自定义分类法),但我不能显示多个术语。当我尝试使用foreach 循环,它不显示任何内容。

以下是我的一个尝试:

<?php 

$terms = get_the_terms($post->ID, \'auteur\');

if ($terms && !is_wp_error($terms)) {
    foreach($terms as $term) {
        echo $term->name ;
    }
}
        
 ?>
它不显示任何内容。但是相同的代码没有foreach 循环显示(如预期)一个术语:

<?php 

$terms = get_the_terms($post->ID, \'auteur\');

   echo $term->name ;
    
?>
我想我错过了一个明显的错误(我是初学者),但我不明白foreach

非常感谢。

1 个回复
SO网友:mozboz

您的第一段代码是正确的。这意味着,如果它没有输出任何东西,就会发生其他事情,您需要调试自己的代码来找出原因。一个好的开始是验证您认为正确的事情实际上是正确的,查看原始数据,并给自己反馈if不正确的原因。例如,什么是$post->;身份证件get\\U术语返回的原始结果是什么样的?

通过执行以下操作,从您自己的代码中获取更多信息:

$postID = $post->ID;
$taxName = \'auteur\';

echo "Getting posts in ta $taxName for post ID $postID"; // Output what the variables are before you use them

$terms = get_the_terms($postID, $taxName);

print_r($terms); // Look at the raw data you get back in case your foreach or output has an error in it

if (empty($terms)) { // Was it empty?
   echo "terms empty or unset";
} elseif (is_wp_error($terms)) { // was there an error? If so print it out?
   echo "there was an error";
} else {
    foreach($terms as $term) {
        echo $term->name ;
    }
}

相关推荐

如何使用Get_the_Terms()显示多个术语?

我使用以下代码在单个帖子的元数据中显示自定义分类法,但现在我需要显示多个用逗号分隔的术语,而不是只显示一个术语。只是不知道怎么做。有没有一种方法可以使用wp_sprintf_l 结合get_the_terms() 要做到这一点?或者其他方式?以下是我当前的功能:$sources = get_the_terms( $post->ID, \'source\' ); if ( ! empty( $sources ) && ! is_wp_error( $sources ) ){&#