PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > ClassCMS

文章标签 [articletags]

管理员 2024-12-14
ClassCMS
5

文章增加标签步骤

  1. 文章模型内增加标签字段(类型为文章标签),为方便区分,以下代码中的tagtest为标签字段标识

标签栏目配置步骤

如前台不需要显示标签栏目,则只需第一步即可

  1. 增加标签模型,模型内增加标签名字段(标识必须为title,类型为文本框)
  2. 增加标签列表页 网址: /($.id)/ 标识:channel 模板文件 tag.php
  3. 增加标签列表分页(标签数量不多,可以跳过此步骤),网址: /($.id)/(page).html 标识:list 模板文件 tag.php
  4. 增加标签详情页 网址: /($.id)/($id).html 标识:article 模板文件 tag_content.php
  5. 增加标签详情分页 网址: /($.id)/($id)_(page).html 标识:articlelist 模板文件 tag_content.php

通过网址自定义可以实现 /tag/标签名/ 这样的标签网址,详见 网址自定义

绑定标签栏目

  1. 修改标签字段内的标签栏目,文章编辑时,能查看所有标签列表
  2. 如开启了自动保存选项,文章保存时,标签也将同步到标签栏目内

前台显示文章标签代码

文章列表页:

{$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修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部