问题描述
我正在寻找在我的帖子下添加标签云,只显示与帖子相关的标签。显示的标签应为标签云格式; 具有更多帖子标签的帖子标签将以更大的字体显示。
我已经尝试在我的帖子下添加以下代码:
<?php wp_tag_cloud( array(
'smallest' => 8, // font size for the least used tag
'largest' => 22, // font size for the most used tag
'unit' => 'px', // font sizing choice (pt, em, px, etc)
'number' => 45, // maximum number of tags to show
'format' => 'flat', // flat, list, or array. flat = spaces between; list = in li tags; array = does not echo results, returns array
'orderby' => 'name', // name = alphabetical by name; count = by popularity
'order' => 'ASC', // starting from A, or starting from highest count
'include' => $post_id, // ID's of tags to include, displays none except these
'link' => 'view', // view = links to tag view; edit = link to edit tag
'taxonomy' => 'post_tag', // post_tag, link_category, category - create tag clouds of any of these things
'echo' => true // set to false to return an array, not echo it
) ); ?>
我试图使用 include 数组来调用 post id 来引用 post 标签。但它不行。它显示了现有的所有标签,而不是特定于该帖子的标签。
有人有解决方案吗?请帮忙。
最佳解决方案
首先,您需要通过调用 wp_get_post_tags 获取所有分配的标签 ID:s,因为 wp_tag_cloud 中的 include 参数仅适用于标签 id,而不是页面 ID 。所以当你有所有的 id:s 把它们放在 wp_tag_cloud 中的 include 参数中,就像这样:
<?php
// Get the assigned tag_id
$tag_ids = wp_get_post_tags( $post->ID, array( 'fields' => 'ids' ) );
// Check if there is any tag_ids, if print wp_tag_cloud
if ( $tag_ids ) {
wp_tag_cloud( array(
'unit' => 'px', // font sizing choice (pt, em, px, etc)
'include' => $tag_ids, // ID's of tags to include, displays none except these
) );
}
?>
我还删除了一些与 defaults 不同的参数,只需要修改数组即可添加自定义参数。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。