标签云的算法是什么?

时间:2011-11-23 21:55:25

标签: php mysql tag-cloud

我想创建一个标签云,我想知道我应该根据什么参数做这个。

另外,我不希望一直显示相同的顶级标签,那么大型网站如何处理呢?

我有一个包含项目的表,一个包含标签的表(只是标签id和标签文本)和另一个用于规范化的表,一个项目和一个标签之间的每个关系都有一行。

1 个答案:

答案 0 :(得分:1)

我认为一个具有良好灵活性(在PHP中)的良好实现是WordPress的实现。在documentation for wp_tag_cloud()

中查看他们的参数对象
  • 最小 - 最小标记(最低计数)显示为大小为8
  • 最大 - 最大标记(最高计数)显示为22
  • unit - 将'pt'(点)描述为最小值和最大值的字体大小单位
  • 号码 - 最多显示45个标签
  • format - 以平面(以空格分隔)样式显示标签
  • 分隔符 - 显示标记之间的空格
  • orderby - 按名称订购代码
  • 订单 - 以ASCENDING方式对标签进行排序
  • 排除 - 排除无标记
  • 包含 - 包含所有代码
  • * topic_count_text_callback * - 使用函数default_topic_count_text
  • link - view
  • 分类 - 使用帖子标签作为云的基础
  • echo - 回显结果

将此代码作为示例:

<?php $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 ); ?>