将wp_tag_cloud与自定义分类一起使用

时间:2013-10-17 作者:multiplier

我正在为架构师构建一个站点,每个项目页面都有一个称为项目服务的自定义分类法,客户机可以在其中添加各种标记。我想在标记云中显示它们,所以我使用以下方法:

<?php wp_tag_cloud( array( \'taxonomy\' => \'project_services\', \'separator\' => \', \') ); ?>
但问题是,在每个项目页面上,它都会显示数据库中的所有项目服务标记,而不是按页面显示。有什么想法吗?

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

是的正常行为wp_tag_cloud: 它显示所有标签,而不仅仅是特定帖子的标签,即使插入到单个页面中也是如此。但是,该函数有一个选项include 它允许您定义要包含的标记(必须是标记ID的逗号分隔列表)。

因此,在模板文件中,将该参数传递给wp_tag_cloud 使用当前帖子的标记ID列表作为值,可以使用get_the_termswp_list_pluck

global $post;
$terms = get_the_terms( $post->ID, \'project_services\' );
$tag_list = implode(\',\', wp_list_pluck($terms, \'term_id\') );
$args = array(
  \'taxonomy\' => \'project_services\',
  \'separator\' => \', \',
  \'include\' => $tag_list
);
wp_tag_cloud( $args );
这样,标签云中只会显示与页面相关的标签。

结束

相关推荐