TAG 静态化插件

摘要:TAG 静态化插件

实现功能

  • 限制生成最大页数
  • 添加当前页码、总页码、文档总数
  • 修正首页、上一页、第一页链接重复
  • 添加手机站 TAG、SEO 标题、关键词、描述、缩略图

1. 限制生成最大页数

设置这个主要有两个目的,防止被采集和生成 TAG 列表消耗过多时间。使用前要先在 后台-->系统-->系统基本参数-->添加新变量:

  • 变量名称:cfg_listmaxpage;
  • 变量说明:栏目生成列表最大文章数;
  • 变量值:100(变量值可以自己修改)。

原理:通过文章的数量控制页面生数量,如果一页文章数量为 10 篇,100 篇文章即生成 10 页。

2. 添加当前页码、总页码、文档总数

// 调用标签
{dede:pageno/} // 当前页码
{dede:totalpage/} // 总页码
{dede:totalresult/} // 文档总数

3. 修正首页、上一页、第一页链接重复

链接重复会造成,第一页与默认页内容相同,但网站 URL 不同,这么做对于搜索引擎来说是重复页面,不利于 SEO。

TAG 的链接样式共 4 种:

  • {拼音}:{pinyin}/index.html、{pinyin}/2.html、{pinyin}/3.html
  • {ID}:{ID}/index.html、{ID}/2.html、{ID}/3.html
  • {拼音}.html:{pinyin}.html、{pinyin}2.html、{pinyin}3.html
  • {ID}.html:{ID}.html、{ID}_2.html、{ID}_3.html

调用方式

1. dede:tag 调用

{dede:tag row='20' sort='new' getall='1'}
<a href="[field:id function='mbp_tag_url(@me)'/]">[field:tag/]</a>
{/dede:tag}
  • row:调用条数,默认 30 条;
  • sort:排序方式,new(最新)、month(月)、week(星期)、rand(随机),默认为 new;
  • getall:获取类型,0 为当前文档 TAG 标记,1 为获取全部 TAG 标记,默认为 0;
  • mbp_tag_url:TAG 静态地址,手机版为 mbp_tag_url_m;
  • field:tag:TAG 名称。

内容页调用当前文档 TAG 相关内容:

{dede:tag}
[field:tag/] // TAG
[field:id/] // ID
[field:tagdir/] // 文件名
[field:id function='mbp_tag_url(@me)'/] // PC 静态地址
[field:id function='mbp_tag_url_m(@me)'/] // 手机静态地址
[field:tagimg/] // 缩略图
[field:seotitle/] // SEO 标题
[field:keywords/] // 关键词
[field:description/] // 描述
[field:tagfenzu/] // 分类
[field:count/] // 点击
[field:total/] // 文档数
[field:addtime function="MyDate('Y-m-d H:i',@me)"/] // 发布时间
{/dede:tag}
{dede:field.id function='mbp_arc_tag_link(@me)'/} // TAG 名称及静态地址
{dede:field.id function='mbp_arc_tag_link_m(@me)'/} // TAG 名称及手机静态地址

2. dede:arclist 调用

{dede:arclist typeid='2' row='20'}
[field:id function='mbp_arc_tag_link(@me)'/] 
{/dede:arclist}
  • row:调用条数,默认 10 条;
  • mbp_arc_tag_link:TAG 名称及静态地址,手机版为 mbp_arc_tag_link_m。

其它字段:

[field:id function=GetTagField(@me,"tag")/] // TAG
[field:id function=GetTagField(@me,"id")/] // ID
[field:id function=GetTagField(@me,"tagdir")/] // 文件名
[field:id function=GetTagField(@me,"tagimg")/] // 缩略图
[field:id function=GetTagField(@me,"seotitle")/] // SEO 标题
[field:id function=GetTagField(@me,"keywords")/] // 关键词
[field:id function=GetTagField(@me,"description")/] // 描述
[field:id function=GetTagField(@me,"tagfenzu")/] // 分类
[field:id function=GetTagField(@me,"count")/] // 点击
[field:id function=GetTagField(@me,"total")/] // 文档数
[field:id function="MyDate('Y-m-d H:i',GetTagField(@me,'addtime'))"/] // 发布时间

当然,你也可以使用 runphp 调用 TAG 相关字段,如:

[field:id runphp=yes]
    global $dsql;
    $row = $dsql->GetOne("SELECT a.* FROM #@__tagindex AS a LEFT JOIN #@__taglist AS b ON a.tag = b.tag WHERE b.aid=@me");
    @me = $row["相关字段"];
    <!-- @me = MyDate("Y-m-d H:i",$row["时间类型字段"]); -->
[/field:id]

3. dede:list 调用

{dede:list pagesize='20'}   
[field:id function='mbp_arc_tag_link(@me)'/] 
{/dede:list}
  • pagesize:调用条数,默认 20 条;
  • mbp_arc_tag_link:TAG 名称及静态地址,手机版为 mbp_arc_tag_link_m。

其它字段与调用方式第 2 条相同。

4. TAG 列表页调用当前 TAG 相关内容

{dede:field.tag/} // TAG
{dede:field.id/} // ID
{dede:field.tagdir/} // 文件名
{dede:field.tagimg/} // 缩略图
{dede:field.seotitle/} // SEO 标题
{dede:field.keywords/} // 关键词
{dede:field.description/} // 描述
{dede:field.tagfenzu/} // 分类
{dede:field.total/} // 文档数
版权声明:本文为博主原创文章,未经博主允许不得转载。http://www.dedenotes.com/plugin/dede-tags.html
(1)
打赏 微信扫一扫 微信 支付宝 QQ 扫码打赏