wp_tag_cloud 是 WordPress 内置的一个用来显示标签的函数,包含了非常丰富的多种显示形式:显示的标签顺序、字体的大小、标签数量等,这些官方文档中都有,这里不一一提了,根据自己的需要来好了。这里想说的是字体大小,很有趣。wp_tag_cloud 里的 largest 是指最大的字体大小,也就是说文章数量最多的那个 tag 的字体大小,而 smallest 刚好相反,文章数最少的那个 tab 字体大小。设置之后,它会以渐进式的方式显示各标签的字体大小,非常灵活。但是我偏偏用不到这个功能,我想把所有的标签字体都显示一样,不区分大小,那要如何修改呢?

  起先我的方法是设置了largest=8,因为默认最小是 8px 字体,所以全部显示成了8px,虽然一致了,但字体太小了,而且查看源代码,每个 tag 后面都加了一句 font-size:8px 的 style,不清爽。打算从源文件入手,将其删除。wp_tag_cloud 函数位于 wp-includes/category-template.php 下,找到:

// Generate the output links array.
	foreach ( $tags_data as $key => $tag_data ) {
		$class = $tag_data['class'] . ' tag-link-position-' . ( $key + 1 );
		$a[] = sprintf(
			'%6$s%7$s',
			esc_url( $tag_data['url'] ),
			$tag_data['role'],
			esc_attr( $class ),
			esc_attr( str_replace( ',', '.', $tag_data['font_size'] ) . $args['unit'] ),
			$tag_data['aria_label'],
			esc_html( $tag_data['name'] ),
			$tag_data['show_count']
		);
	}

  我直接将 class="%3$s" style="font-size: %4$s;" 删除了,搞定!