首先,我们来了解一下实际评分,get_term
需要一个术语ID,我们没有,所以让我们使用wp_get_object_terms
相反
$terms = wp_get_object_terms($post->ID, \'review-score\' );
到目前为止,代码假设只有一个术语,这很糟糕。但是,为了得到这个答案,让我们使用这个假设,并说我们只处理第一个术语:
if ( !empty( $terms ) && !is_wp_error( $terms ) ) {
$term = $terms[0];
$terms
是一个术语对象列表,因此让我们确保该列表不是空的,并且不是错误。如果是的话,那么我们就不要放弃,做点别的。
在这里$term
是表示WP_Term
对象,您使用slug来保存审核分数,因此您需要:
$term->slug
您可以使用WordPress Codex和官方开发者中心来查找此信息。
在PHP中输出术语
仅在html中声明变量名称是不够的,您必须将其回显出来,因此这将不起作用:
<span>The term is: $term->slug </span>
您没有打开任何PHP标记,因此没有执行任何PHP,并且您没有像下面这样放置echo语句来对其进行回显:
<span>The term is: <?php echo $term->slug; ?> </span>
有了这些信息,您应该能够更正最终的代码块,以执行您想要的操作。
其他错误
<?php if ($var = \'10\') { ?>
这是你的作业。代码的内容是“使$term等于then,然后使其10位起作用”,所以它总是正确的。相反,使用
==
这意味着等效,或
===
这意味着完全等于。
相反,我建议交换顺序:
<?php if ( \'10\' == $var ) {
如果您意外键入
=
而不是
==
它将生成一个PHP错误,而不是导致一个隐藏的逻辑错误,问题将立即显现出来