正在检查页面是否有关联术语?

时间:2010-10-25 作者:NetConstructor.com

我正在寻找一种方法,对与帖子相关的术语进行一些条件逻辑。

基本上,我为“年龄组”创建了自己的自定义分类法,并为它们创建了三个术语。孩子,青少年,成年人。。。在管理区域,我想检查适用于特定帖子的条款,如果条款与帖子关联,我想在页面模板内的网站前端显示特定图像,如果条款未关联,则显示不同的图像。

有没有人能解决这个问题。。。我原以为下面的代码示例可以工作,但事实并非如此。(顺便说一句,我在这里做的是根据css更改图像)。

<li id="kids-<?php if ( is_term( \'Kids\' , \'age_groups\' ) ) {
   echo \'on\';
} else {echo \'off\';} ?>">Kids Programs</li>

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

你好@NetConstructor:

首先,假设逻辑正常,可以使用三元运算符简化示例:

<li id="kids-<?php echo is_term(\'Kids\',\'age_groups\') 
   ? \'on\' : \'off\'; ?>">Kids Programs</li>
问题似乎是is_term() 用于检查术语是否存在,而不是是否与特定帖子关联。我想你真正想要的是is_object_in_term() (假设您在The Loop, i、 e.那$post 具有适当的值):

<li id="kids-<?php echo is_object_in_term($post->ID,\'age_groups\',\'Kids\') 
   ? \'on\' : \'off\'; ?>">Kids Programs</li>
P.S.假设is_term() 是正确的功能,实际上deprecated; term_exists() 替换is_term(); 仅供参考。

结束

相关推荐

Saving Taxonomy Terms

我有一个有趣的问题,希望有人能尽快回答。我已经创建了自己的metabox,它基于“我的metabox代码”(下面的列表)正确地显示了我创建的“event\\u types”分类中所有术语的下拉列表。我遇到的问题是,当从下拉列表中选择不同的术语并更新帖子时,能够保存/更新与帖子相关的术语。在对各种代码位进行修补之后,我发现通过手动将term\\u ID number[用逗号分隔]输入数组区域,我得到了我想要的结果。例如,如果在保存帖子时,函数将调用此代码wp_set_post_terms( $post_id