我可以生成并显示链接和未链接术语的混合列表吗

时间:2014-07-14 作者:Kevin4fm

是否有人知道一种简单的方式来显示链接和未链接(自定义)术语的混合列表,这取决于是否使用了多个术语实例?

i、 我有一个条目,在一个分类法中可能有三个或四个术语。在这些术语中,两个或三个可能也适用于其他项目,但一个或多个仅适用于该项目。我想显示项目的术语列表,如果该术语用于其他项目,则它是指向这些项目列表的链接,但如果该项目是唯一具有该术语的项目,则它不是链接。(如果链接只显示已查看的一个项目,则对象不提供链接!)

因此,我不能(我不认为)直接使用get\\u the\\u term\\u list,因为它提供了所有术语的链接列表,而不管一个术语有多少个实例。我用wp\\u get\\u object\\u terms做了一些工作,其中只有一个自定义分类法中的术语分配给一篇文章,但我需要做同样的事情,如果有多个术语,其中一些应该是链接,另一些不是。

我相信通过编写一些长而聪明的脚本是可能的,但我想知道是否有人知道一种简单的方法[如果有人已经编写了长而复杂的脚本,我不会反对,并可以给我指出它!:-)]我想另一种方法是相当复杂的脚本,但定义为函数,因此,脚本本身只需输入一次,每次需要时我都可以使用一些简单的东西,但学习如何从头开始创建函数是一个挑战,我还没有自学!

如果这有助于理解,即我没有像我想的那样解释我自己您可以看到一个挑战示例here. 例如,BP标记链接到标记为BP的项目列表。。。但该列表只包含一个访问者已经在查看的项目。进一步使用的surveys标签链接到一个列表,其中原始项仅为该术语的两个项之一。

非常感谢您的帮助/建议!:-)

1 个回复
最合适的回答,由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>\';
}

结束

相关推荐

GET Taxonomy ID

我有一行,其中“5”是分类ID。<?php echo function xyz (5,\'product_cat\'); ?>如何更改此项以使其始终自动识别当前页面的分类ID?尝试此操作但未成功:<?php echo function xyz (get_term_by(\'id\',\'\',\'product_cat);,\'product_cat\'); ?>我该怎么做?谢谢