标签云是一组标签,根据您网站中出现的次数,这些标签无疑是最受欢迎的。每个标签在云中显示的大小取决于该标签的受欢迎程度。有很多方法可以实现这一点。通常,css 决定了字体的大小,可以这样处理:
标签表:
id,标签
文章表:
id、标题、正文等
标签关系表:
article_id、tag_id、user_id
因此,当用户标记文章时,它会使用用户 ID、文章 ID 和标签 ID 将关系添加到关系表中。通过这种方式,您可以记录文章中标签的个别出现,以及谁给它们加了标签。换句话说,一种计量单位。
标签云会获取一组标签——通常是至少有 1 次使用的标签——否则可能应该是相对随机的。因此,您的 fetch 查询可能会导致如下结果:
标签、分数(基于出现次数和您选择的任何因素的算法)
酷:2
汽车 : 5
好笑:4
热门:1
丑:7
然后您使用标签的分数来应用 css 类。你可以让它变得无限并失控,但最好设置界限。所以我们给出一个 1 - 10 的选项。在 css 中,您可以为每个分数定义一个类:
.score-1{
font-size: 1em;
}
.score-2{
font-size:1.1em;
}
.score-3{
font-size:1.2em;
font-weight:bold;
color:#ff6600;
}
//etc.
并像这样提供 html:
<a href="tags.php?tag=15" class="score-2">Cool</a>
<a href="tags.php?tag=10" class="score-7">Ugly</a>
<a href="tags.php?tag=3" class="score-5">Cars</a>
<a href="tags.php?tag=4" class="score-1">Hot</a>
<a href="tags.php?tag=6" class="score-4">Funny</a>
除此之外,jQuery 不一定与标签云有任何关系。但是可能有一些插件可以做到,所以如果你找到它们就去吧。
我应该澄清此示例中的“分数”,假设您有一个算法来获取出现次数,并且 - 根据您自己的任意数量的标准,分配 1 - 10 的最终分数值。不一定使用原始计数作为一个分数。 Rocket 提到标签云是网站上的 TOP 标签 - 这可以明确为网站上的顶级 RANGE。否则,您最终可能会得到一个标签云,其中所有标签都是巨大的并且大小相同。我有一个网站在前 10 个标签上徘徊,所有标签的出现次数都相同,数周内给予或拿走几分。您可以查看因子分数的标准差。我倾向于经常使用它来避免垃圾邮件。此外,自上次使用以来的时间、使用标签的用户的可信度等。
如果您有任何特殊问题,请告诉我,我可能会更新。