get_the_term_list在3.1中没有链接


13

什么功能将与帖子关联的自定义分类法显示为文本?

我当前使用的是get_the_term_list,该功能非常适合单个页面,但在archive-postype.php永久链接标题标签中使用分类法时,效果并不理想。

Answers:


15

wp_get_object_terms()返回与对象(例如,帖子或页面或自定义帖子)关联的术语作为文本(通常在数组中)。

wp_get_object_terms()的法典页面

$productcategories = wp_get_object_terms($post->ID, 'productcategories');


请记住,查询结果不是像那样缓存的get_the_terms()。有关信息,请参见法典页面
Dylan'9

22

但是@anu是正确的,我发现您可以调用php函数strip_tags 去除返回值的标签。

$terms = get_the_term_list( $post->ID, 'tags' );
$terms = strip_tags( $terms );

看起来很简单,可以完成工作。使用这个有什么缺点吗?
Mohsin

@Mohsin的缺点是它会剥离所有标签,而不仅仅是<a>标签。但是,您可以防止剥离所需的标签,如下所示:$terms = strip_tags( $terms, '<li>' );
David

2

我认为最好的方法是为术语列表实现过滤器,该过滤器仅通过regexp从列表中提取文本

get_the_terms_list()在此处实现:http ://core.trac.wordpress.org/browser/tags/3.0.4/wp-includes/category-template.php#L948 。

 $term_links = apply_filters( "term_links-$taxonomy", $term_links );

您可以实现自己的过滤器。


1
$terms = wp_list_pluck( get_the_terms( get_the_ID(), 'your_taxonomy' ), 'name');

$ terms是一个数组,因此可以使用foreach循环。

foreach( $terms as $term ) {
  echo $term;
}

0

我需要同样有效的Zack解决方案。例如,如果您只需要输入CSS ID或类的术语。关于解决方案只有一个注释,该函数调用不好,正确的是“ get_the_term_list”。

我展示我的例子:

$terms = get_the_term_list( $post->ID, 'your_taxonomy_name' );
$terms = strip_tags( $terms );
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.