WordPress在文章页以标签云形式显示文章标签

quality,Q 70

大家都看过WordPress 标签小工具的标签云,标签按文章数显示不同的大小,看上去很生动,那么在文章页面是否也可以用标签云的形式调用该文章标签呢?当然是可以的。

1638339062 20211201061102 61a711f6965d3

WordPress 在文章页以标签云形式显示文章标签

section

一般在WordPress文章页调用文章标签会用到:

the_tags()

而小工具的标签云函数是:

wp_tag_cloud()

区别是标签云默认调用全站文章的标签,可以按标签文章数显示不同的大小,并可以控制输出数量,使用上更加灵活。section

正常这个标签云函数不能自动调用当前文章标签,可以通过获取文章所有标签ID,并加个判断,在文章页面用标签云仅调用该文章的标签,基本代码如下:

// 获取文章所有标签
$tag_ids = wp_get_post_tags( $post->ID, array( 'fields' => 'ids' ) );
// 如文章有标签,则输出标签云
if ( $tag_ids ) {
	wp_tag_cloud( array(
		'include'  => $tag_ids,
		'smallest' => 14, 
		'largest'  => 22,
		'unit'     => 'px', 
	) );
}

适合喜欢给文章加一堆标签的童鞋使用。section

可以根据需要参考下面标签云函数适当修改参数:

<?php wp_tag_cloud( $args ); ?>

默认参数:

$args = array(
'smallest'                  => 8, 
'largest'                   => 22,
'unit'                      => 'pt', 
'number'                    => 45,  
'format'                    => 'flat',
'separator'                 => "\n",
'orderby'                   => 'name', 
'order'                     => 'ASC',
'exclude'                   => null, 
'include'                   => null, 
'topic_count_text_callback' => default_topic_count_text,
'link'                      => 'view', 
'taxonomy'                  => 'post_tag', 
'echo'                      => true,
'child_of'                   => null(see Note!)
);

说明:

  • smallest —— 最小的标签(使用次数最少)显示大小为8
  • largest ——最大的标签(使用次数最多)显示大小为22
  • unit —— 最大值最小值的单位为’pt’
  • number —— 至多显示45个标签
  • format —— 以平面形式显示所有标签(标签之间用空格隔开)
  • separator —— 显示标签之间的空格
  • orderby —— 按名称为标签排序
  • order —— 以升序排列
  • exclude —— 不排除任何标签
  • include —— 包括所有标签
  • topic_count_text_callback —— 使用函数 default_topic_count_text
  • link —— 可视
  • taxonomy —— 用文章的标签作为云基础
  • echo —— 输出结果

类似文章