我们在做织梦模板开发时,为了更好的利于seo,在每篇文章下调用与这篇文章有着相同tag或keyword的相关文章。为了实现这个功能,自定义了一个标签:dede:liketags。标签代码如下:

自定义标签代码
1、新建一个文件名称为 liketags.lib.php,存放在/include/taglib/目录下。 该文件代码如下:
<?php
if(!defined('DEDEINC')) exit('Request Error!');
function lib_liketags(&$ctag,&$refObj)
{
global $dsql;
//属性处理
$attlist="row|12,titlelen|30,infolen|250,col|1,tablewidth|100,mytypeid|0,byabs|0,imgwidth|120,imgheight|90,flag|";
FillAttsDefault($ctag->CAttribute->Items,$attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$revalue = '';
if(empty($tablewidth)) $tablewidth = 100;
if(empty($col)) $col = 1;
$colWidth = ceil(100/$col);
$tablewidth = $tablewidth."%";
$colWidth = $colWidth."%";
$orwheres = '';
if($flag != '') {
$flags = explode(',', $flag);
for($i=0; isset($flags[$i]); $i++) $orwheres .= " AND FIND_IN_SET('{$flags[$i]}', arc.flag)>0 ";
}
$ids = array();
$tids = array();
if(!empty($refObj->Fields['tags'])) {
$keyword = $refObj->Fields['tags'];
}
else {
$keyword = ( !empty($refObj->Fields['keywords']) ? $refObj->Fields['keywords'] : '' );
}
$typeid = ( !empty($mytypeid) ? $mytypeid : 0 );
if(empty($typeid))
{
if(!empty($refObj->Typelink->TypeInfos['reid'])) {
$typeid = $refObj->Typelink->TypeInfos['reid'];
}
else {
if(!empty($refObj->Fields['typeid'])) $typeid = $refObj->Fields['typeid'];
}
}
if( !empty($typeid) && !preg_match('#,#', $typeid) ) {
$typeid = GetSonIds($typeid);
}
if(!empty($refObj->Fields['tags']) && $eregtype != 'keyword' )
{
$tags = explode(',', addslashes($refObj->Fields['tags']));
$getsql = " tag like '".join("' OR tag like '", $tags)."' ";
$dsql->Execute('me', "Select * From `dede_tagindex` where $getsql ");
while($arow = $dsql->GetArray('me'))
{
$tids[] = $arow['id'];
}
$tid = join(',', $tids);
if($tid!='')
{
$dsql->Execute("me", "Select aid From `dede_taglist` where tid in($tid) And arcrank > -1 group by aid order by aid desc");
while($arow = $dsql->GetArray("me"))
{
$ids[] = $arow['aid'];
$arcid = $refObj->Fields['aid'];
}
}
}
if($eregtype == 'tag' && count($ids) == 0 )
{
return;
}
else
{
if(count($ids) > 0)
{
if(!empty($typeid))
{
$typeid = " And arc.typeid in($typeid) And arc.id<>$arcid ";
}
$idsStr = join(',', $ids);
$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,
tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
from `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.id
where arc.id in($idsStr) $typeid order by arc.id desc limit 0, $row";
}
else
{
$limitRow = $row - count($ids);
$keyword = '';
if(!empty($refObj->Fields['keywords']))
{
$keywords = explode(',' , trim($refObj->Fields['keywords']));
$keyword = '';
$n = 1;
foreach($keywords as $k)
{
if($n > 3) break;
if(trim($k)=='') continue;
else $k = addslashes($k);
$keyword .= ($keyword=='' ? " CONCAT(arc.keywords,' ',arc.title) like '%$k%' " : " OR CONCAT(arc.keywords,' ',arc.title) like '%$k%' ");
$n++;
}
}
$arcid = (!empty($refObj->Fields['id']) ? $refObj->Fields['aid'] : 0);
if( empty($arcid) || $byabs==0 )
{
$orderquery = " order by arc.id desc ";
}
else
{
$orderquery = " order by ABS(arc.id - ".$arcid.") ";
}
if($keyword != '')
{
if(!empty($typeid))
{
$typeid = " And arc.typeid in($typeid) And arc.id<>$arcid ";
}
$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,
tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
from `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.id
where arc.arcrank>-1 and ($keyword) $typeid $orderquery limit 0, $row";
}
else
{
if(!empty($typeid))
{
$typeid = " arc.typeid in($typeid) And arc.id<>$arcid ";
}
$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,
tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
from `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.id
where arc.arcrank>-1 and $typeid $orderquery limit 0, $row";
}
}
}
$innertext = trim( $ctag->GetInnerText() );
if($innertext=='') $innertext = GetSysTemplets('part_arclist.htm');
$dsql->SetQuery($query);
$dsql->Execute('al');
$artlist = '';
if($col > 1){
$artlist = "<table width='$tablewidth' border='0' cellspacing='0' cellpadding='0'>\r\n";
}
$dtp2 = new DedeTagParse();
$dtp2->SetNameSpace('field', '[', ']');
$dtp2->LoadString($innertext);
$GLOBALS['autoindex'] = 0;
$line = $row;
for($i=0; $i < $line; $i++)
{
if($col>1) $artlist .= "<tr>\r\n";
for($j=0; $j < $col; $j++)
{
if($col>1) $artlist .= " <td width='$colWidth'>\r\n";
if($row = $dsql->GetArray("al"))
{
$ids[] = $row['id'];
//处理一些特殊字段 织梦模板网
$row['info'] = $row['infos'] = cn_substr($row['description'],$infolen);
$row['id'] = $row['id'];
if($row['corank'] > 0 && $row['arcrank']==0)
{
$row['arcrank'] = $row['corank'];
}
$row['filename'] = $row['arcurl'] = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],
$row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);
$row['typeurl'] = GetTypeUrl($row['typeid'],$row['typedir'],$row['isdefault'],$row['defaultname'],$row['ispart'],
$row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']);
if($row['litpic'] == '-' || $row['litpic'] == '')
{
$row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';
}
if(!preg_match("#^http:\/\/#i", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y')
{
$row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic'];
}
$row['picname'] = $row['litpic'];
$row['stime'] = GetDateMK($row['pubdate']);
$row['typelink'] = "<a href='".$row['typeurl']."'>".$row['typename']."</a>";
$row['image'] = "<img src='".$row['picname']."' border='0' width='$imgwidth' height='$imgheight' alt='".preg_replace("#['><]#","",$row['title'])."'>";
$row['imglink'] = "<a href='".$row['filename']."'>".$row['image']."</a>";
$row['fulltitle'] = $row['title'];
$row['title'] = cn_substr($row['title'], $titlelen);
if($row['color']!='') $row['title'] = "<font color='".$row['color']."'>".$row['title']."</font>";
if(preg_match('#b#', $row['flag'])) $row['title'] = "<strong>".$row['title']."</strong>";
$row['textlink'] = "<a href='".$row['filename']."'>".$row['title']."</a>";
$row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl'];
$row['memberurl'] = $GLOBALS['cfg_memberurl'];
$row['templeturl'] = $GLOBALS['cfg_templeturl'];
if(is_array($dtp2->CTags))
{
foreach($dtp2->CTags as $k=>$ctag)
{
if($ctag->GetName()=='array') {
$dtp2->Assign($k,$row);
}
else {
if(isset($row[$ctag->GetName()])) $dtp2->Assign($k,$row[$ctag->GetName()]);
else $dtp2->Assign($k,'');
}
}
$GLOBALS['autoindex']++;
}
$artlist .= $dtp2->GetResult()."\r\n";
}
//if hasRow
else
{
$artlist .= '';
}
if($col>1) $artlist .= " </td>\r\n";
}
//Loop Col
if($col>1) $i += $col - 1;
if($col>1) $artlist .= " </tr>\r\n";
}
//loop line
if($col>1) $artlist .= " </table>\r\n";
$dsql->FreeResult("al");
return $artlist;
}前台模板调用代码如下:
{dede:liketags row='3' mytypeid='6' eregtype='all|tag|keyword' titlelen='250' infolen='250'}
<li>
<a href="[field:arcurl/]" title="[field:title/]" target="_blank">
<div class="list-img">
<img src="[field:litpic/]" alt="[field:title/]"/>
</div>
<div class="list-info">
<p class="title">[field:title/]</p>
<p class="meta">[field:description /]</p>
</div>
</a>
</li>
{/dede:liketags}
# 精准营销及推广技巧分享
# flags
# ceil
# orwheres
# 橱窗推广的网站有哪些
# 舞钢优化办招聘公告网站
# 网站seo知识星球官网
# seo讲关键词
# 营销推广中的关键词分析
# 福田企业网站优化哪个好
# 如何搞好网络营销推广
# 正定网站建设简介
# FillAttsDefault
# 爱站seo编码解码
# 西安的网络推广网站是什么
# 微博推广学校网站
# 线上美术营销推广方案
# 大牛学seo视频seo技术
# 虾皮seo自然搜索优化排名
# 成都网站建设要注意什么
# 潮州seo公司解答火星
# 阿勒泰全网营销推广招聘
# 行业网站建设论坛
# 快手营销推广效果如何
# 为了更好
# 织梦CMS教程
# 自定义标签
# 相关文章
# liketags
# 织梦标签
# 织梦自定义
# 宋体
# 自定义
# 放在
# 这篇文章
# 该文件
# 织梦dedecms自定义标签liketags调用tag/keyword相同的相关文章
# 新建一个
# 目录下
# Items
# empty
# extract
# EXTR
# SKIP
# revalue
# colWidth
# explode
相关文章:
如何根据公司需求定制SEO优化策略_SEO优化教程
建设网站 公司_企业网页建设公司_微博营销推广十大技巧
【关键词优化方案】网站优化方案是怎么写的?企业如何推进网络营销?
【网页设计创意】网页的布局设计是做什么的?如何写作品说明书?
注册公司 网站_注册个网站_注册个人网站流程
如何评估和调整短视频SEO策略以提升效果?_SEO优化教程
【网页制作软件】网页制作软件有哪些_网页制作软件叫什么_自己做网页用什么软件
【制作网页】如何用dreamweaver制作html网页?Dreamweaver8.0制作简单页面的步骤?建立一个网站要花多少钱?
东莞网站建设过程_东莞网站建设方案报价_食堂营销策划和推广创意视频
云浮SEO推广的定义是什么?_SEO优化教程
页面SEO的主要内容有哪些_SEO优化教程
如何通过社交媒体提升盐田企业网站的流量_网站建设教程
什么是网站建设?
北京营销型网站建设方案_北京营销型网站建设公司_云浮seo推广必看网站
江门免费建站平台是否支持网站独立域名绑定_网站建设教程
企业网站如何布局关键词以增强SEO效果_网站建设教程
乐昌传媒公司网站建设在响应速度优化上有哪些创新方案_网站建设教程
用户对快速优化SEO软件的评价与反馈_SEO优化教程
苏州网站建设哪家好_苏州网站建设哪家靠谱_收费视频网站建设
塘厦网站建设公司_塘厦网站建设_朔州湖南网站建设
广州高端品牌网站建设哪家公司好一点_广州高端品牌网站建设哪家公司好_元氏竞价网站推广哪家好
网站建设的启动流程
开封企业网站建设项目_石家庄网站建设行业现状
【网页设计公司网站】一般建设企业网站的费用是多少?企业网站包括哪些板块?为公司制作网站的步骤是什么?
在东台SEO中常见的误区有哪些?_SEO优化教程
长期使用黑帽SEO策略会有哪些潜在的风险?_SEO优化教程
如何评估和调整青岛SEO效果_SEO优化教程
建站工具与定制开发网站各有哪些优缺点_网站建设教程
网站建设微信公众号_微网站建设公众号_贺州租房网站建设
如何通过分析用户行为来优化SEO内容策略?_SEO优化教程
专业SEO优化策略与方法有哪些?_SEO优化教程
如何调整SEO技术以应对算法变化?_SEO优化教程
网站建设公司如何选择
企业网站建设公司哪家好_企业网站建设公司有哪些_seo优化方案怎么做
景区网站建设方案费用_景区网站建设_增城新塘网站制作推广
昆明网站建设找哪家好_昆明网站建设哪家好_网站建设构架
公司网站建设哪家好_公司网站建设_临淄网站优化排名
建个网站公司赚钱吗_建网站的公司_涟水本地网站建设价格
网站建设制作的流程与方法有哪些?
石家庄网站开发建设_网站推广员软文
广州有哪些网站建设公司_广州有哪些网站建设_seo在线优化seo在线优化
保定网站建设多少钱_保定网站建设哪家好_百度seo高端技术
app网站制作要多少钱一个_app网站制作要多少费用_毕节抖音seo优化推广
海宁网站建设公司有哪些_海宁网站建设公司_百度seo关键词排名查询软件
网站建设目标主要有_网站建设目标_番禺 大石网站建设
单页面网站对移动端适配有哪些要求_网站建设教程
网站建设公司北京有哪些_网站建设公司北京_中文网站建设模板
企业SEO优化为何被视为一种性价比高的网络营销策略?_SEO优化教程
哪些省市的黄页信息可以通过该网站查询_网站建设教程
如何通过外部链接建设来提升北流网站的SEO表现?_SEO优化教程
相关栏目:
【
网络营销44070 】
【
网络推广122852 】
【
网络优化116010 】
【
网址导航102054 】
【
网络技术82194 】
【
网络资讯43554 】