UCMS原生是不带标签云集功能的,但在添加字符段的过程中,确显示有标签,折腾了好久,却搞不出来,后来发现,其实可以通过简单的搜索功能来实现标签的功能。
实现条件
文章字符段中包括关键词(keyword)、tag(标签(横)或(竖))。
实现方法
- 发表文章时,填写tag和关键词,关键词等于各个标签用“,”隔开,如标签为“UCMS”“标签”这两个,关键词就填写“UCMS,标签”,可以添加额外内容。
- 新建自定义页面,地址为/so.php,模板文件为so.php,模板中so.php的内容为:
{if isset($_GET["keyword"])}
<!DOCTYPE HTML>
<html class="no-js">
<head>
<title>关键字“{strip_tags($_GET["keyword"])}”的搜索结果</title>
</head>
<body>
{$set=array()}
{$set['cid']=0}
{$set['keyword']=strip_tags($_GET["keyword"])}
{$set['searchcolumn']=title,keywords}
{$set['page']=page}
{$set['pagesize']=20}
{$articles=alist($set)}
{loop $articles['list'] as $a}
<a href="{$a['link']}">{$a['title']}</a>
{/loop}
</body>
</html>
{else}
{notfound()}
{/if}
- 在需要加入tag的地方添加代码:
{$tags=$a['tag']|json_decode(1)}
{loop $tags as $tag}
<a href="so.php?keyword={$tag}" title="搜索关键字{$tag}">{$tag}</a>
{/loop}
注意:上面的代码实在文章列表页面用的,如果实在文章页面,需要将
{$tags=$a['tag']|json_decode(1)}改为
{$tags=$article['tag']|json_decode(1)}