检查页面是否具有关联术语?
-
16-10-2019 - |
题
我正在寻找一种对与帖子相关的术语进行一些有条件逻辑的方法。
从本质上讲,我为“年龄组”创建了自己的自定义分类法,并为他们创建了三个术语。孩子,青少年,成年人...在管理区域,我想检查适用于特定帖子的条款以及在我的页面模板内的网站的前端,如果该术语与帖子相关联,我想显示特定图像如果该术语不关联,则是其他的。
有人对此有解决方案吗?我认为以下代码示例会起作用,但行之有效。 (顺便说一句 - 我在这里做的是基于CSS更改图像)。
<li id="kids-<?php if ( is_term( 'Kids' , 'age_groups' ) ) {
echo 'on';
} else {echo 'off';} ?>">Kids Programs</li>
解决方案
你好 @netConstructor:
第一件事, 假设 您的逻辑工作您可以使用三元操作员简化您的示例:
<li id="kids-<?php echo is_term('Kids','age_groups')
? 'on' : 'off'; ?>">Kids Programs</li>
问题似乎是 is_term()
用于检查是否存在一个术语,而不是与特定帖子相关联。我认为你真正想要的是 is_object_in_term()
(假设您在 循环, ,即那个 $post
具有适当的值):
<li id="kids-<?php echo is_object_in_term($post->ID,'age_groups','Kids')
? 'on' : 'off'; ?>">Kids Programs</li>
PS假设 is_term()
曾经是正确的功能,实际上已经 弃用; term_exists()
替换 is_term()
;仅供参考。