文章增加标签步骤
- 文章模型内增加标签字段(类型为文章标签),为方便区分,以下代码中的tagtest为标签字段标识
标签栏目配置步骤
如前台不需要显示标签栏目,则只需第一步即可
- 增加标签模型,模型内增加标签名字段(标识必须为title,类型为文本框)
- 增加标签列表页 网址: /($.id)/ 标识:channel 模板文件 tag.php
- 增加标签列表分页(标签数量不多,可以跳过此步骤),网址: /($.id)/(page).html 标识:list 模板文件 tag.php
- 增加标签详情页 网址: /($.id)/($id).html 标识:article 模板文件 tag_content.php
- 增加标签详情分页 网址: /($.id)/($id)_(page).html 标识:articlelist 模板文件 tag_content.php
通过网址自定义可以实现 /tag/标签名/ 这样的标签网址,详见 网址自定义
绑定标签栏目
- 修改标签字段内的标签栏目,文章编辑时,能查看所有标签列表
- 如开启了自动保存选项,文章保存时,标签也将同步到标签栏目内
前台显示文章标签代码
文章列表页:
{$tags=explode(;,$article.tagtest)|array_filter()}{loop $tags as $tag} {$tag}{/loop}
文章页:
{$tags=explode(;,$tagtest)|array_filter()}{loop $tags as $tag} {$tag}{/loop}
文章页通过标签名查询到标签的详情页 (需先配置好标签栏目):
{$thistags=explode(;,$tagtest)|array_filter()}{loop $thistags as $thistag} {$tagquery.cid=标签栏目id} {$tagquery.where.title=$thistag} {$tagarticle=cms:article:getOne($tagquery)} {if $tagarticle} <a href="{$tagarticle.link}">{$tagarticle.title}</a> {/if}{/loop}
tag查询
安装本应用后 cms:article:get 支持参数 tags
查询标签为'测试'的文章
{$query.modulehash=article} 此处需修改为对应需要查找的模型或栏目{$query.tags.tagtest=测试}{$articles=cms:article:get($query)}{loop $articles as $article} <a href="{$article.link}">{$article.title}</a>{/loop}
查询标签为'测试'或'测试2'的文章
{$articlequery.tags.tagtest=测试;测试2} 使用;分隔多个标签名,也支持传入数组{$articles=cms:article:get($articlequery)}
如标签字段标识不为tagtest, 则更改为tags.xxx(xxx为字段标识)
标签栏目代码
模板tag.php内查询所有标签代码,请参考 文章查询
tag_content 显示标签下属文章代码:
{$articlequery.modulehash=article} 此处可修改为对应需要查找的模型或栏目{$articlequery.tags.tagtest=$title}{$tagarticles=cms:article:get($articlequery)}{loop $tagarticles as $tagarticle} <a href="{$tagarticle.link}">{$tagarticle.title}</a>{/loop}
开启分页:
{$articlequery.modulehash=article} 此处可修改为对应需要查找的模型或栏目{$articlequery.tags.tagtest=$title}{$articlequery.page=page}<?php//通过当前文章,匹配到对应的分页页面$nowarticle=C('cms:article:getOne',array('cid'=>$cid,'where'=>array('id'=>$id)));$articlequery['pageurl']=U($cid,'articlelist',$nowarticle);?>{$articlequery.channelurl=$link}{$articlequery.pagesize=1}{$tagarticles=cms:article:get($articlequery)}{loop $tagarticles as $tagarticle} <a href="{$tagarticle.link}">{$tagarticle.title}</a>{/loop}</div>
页码:
{$pages=pagelist()}{loop $pages as $page} <a href="{$page.link}" class="{$page.class}">{$page.title}</a>{/loop}
文章页找出相似文章
{if $tagtest} {$articlequery.modulehash=article} 从全部文章模型中的文章内查找 {$articlequery.cid=$cid} 只从当前文章栏目查找 {$articlequery.tags.tagtest=$tagtest} 查询与当前文章有共同tag的文章 <?php $articlequery['where']['id<>']=$id; //排除当前文章 ?> {$articlequery.pagesize=10} {$articles=cms:article:get($articlequery)} {loop $articles as $article} <a href="{$article.link}">{$article.title}</a> {/loop}{/if}
文章新增时自动获取标签
安装 高级默认值
修改tagtest字段默认值项内的高级默认值为 articletags:autoTag;$;title
文章新增时,如标签为空,将自动从标题字段中匹配到已经存在的标签
如需匹配多个字段使用|分隔,如 articletags:autoTag;$;title|content
采集时标签自动保存到标签栏目
if(isset($_POST['tagtest']) && !empty($_POST['tagtest'])){ $tags=explode(';',$_POST['tagtest']); foreach ($tags as $tag) { if(!C('cms:article:getOne',array('cid'=>'tag栏目id','where'=>array('title'=>$tag)))){ C('cms:article:add',array('cid'=>'tag栏目id','title'=>$tag)); } }}
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。