是否有人知道一种简单的方式来显示链接和未链接(自定义)术语的混合列表,这取决于是否使用了多个术语实例?
i、 我有一个条目,在一个分类法中可能有三个或四个术语。在这些术语中,两个或三个可能也适用于其他项目,但一个或多个仅适用于该项目。我想显示项目的术语列表,如果该术语用于其他项目,则它是指向这些项目列表的链接,但如果该项目是唯一具有该术语的项目,则它不是链接。(如果链接只显示已查看的一个项目,则对象不提供链接!)
因此,我不能(我不认为)直接使用get\\u the\\u term\\u list,因为它提供了所有术语的链接列表,而不管一个术语有多少个实例。我用wp\\u get\\u object\\u terms做了一些工作,其中只有一个自定义分类法中的术语分配给一篇文章,但我需要做同样的事情,如果有多个术语,其中一些应该是链接,另一些不是。
我相信通过编写一些长而聪明的脚本是可能的,但我想知道是否有人知道一种简单的方法[如果有人已经编写了长而复杂的脚本,我不会反对,并可以给我指出它!:-)]我想另一种方法是相当复杂的脚本,但定义为函数,因此,脚本本身只需输入一次,每次需要时我都可以使用一些简单的东西,但学习如何从头开始创建函数是一个挑战,我还没有自学!
如果这有助于理解,即我没有像我想的那样解释我自己您可以看到一个挑战示例here. 例如,BP标记链接到标记为BP的项目列表。。。但该列表只包含一个访问者已经在查看的项目。进一步使用的surveys标签链接到一个列表,其中原始项仅为该术语的两个项之一。
非常感谢您的帮助/建议!:-)
最合适的回答,由SO网友:gmazzap 整理而成
您可以使用count
分类术语的属性,如果是> 1
, 然后显示链接到存档的术语。
// inside loop, get the terms of a custom taxonomy for the current post
$terms = get_the_terms( get_the_ID(), \'your_custom_taxonomy\' );
// cycle the terms and display the name, linked to archive if term count is > 1
foreach ( $terms as $term ) {
$link = $term->count > 1 ? get_term_link( $term, $term->taxonomy ) : FALSE;
echo \'<li>\';
if ( $link ) echo \'<a href="\' . $link . \'">\'; // open link if needed
echo $term->name; // always show term name
if ( $link ) echo \'</a>\'; // close link if needed
echo \'</li>\';
}