dede相关文章:dede按tag调用相关文章,提高用户体验

代码改进了不少,网上虽然有很多类似的,但是都是有点小毛病的,这个经过测试,准确无误,完全是按照tag进行相关tag的相关文章匹配,如果没有相关文章的话,则会显示“无相关文章”的提示,对于用户以及自己都是一种非常负责的小细节!废话不多说,看下面:

第一步:在include\common.inc.php文件的最后,插入以下函数代码
 
function ShowTagLikeArc_by_id($titleLen,$rowCount,$typeid,$aid){
$dsql = new DedeSql(false);
if ($typeid!=”0″) $sql = TypeGetSunID($typeid,$dsql);
else $sql =” 1=1 “;  

//找到所有的tag id
$query=”Select tid from dede_taglist   where aid=$aid”;
$dsql->SetQuery($query);
$dsql->Execute();
while($row=$dsql->GetObject()){
$kwsqlarr[] = ” (tl.tid=’”.$row->tid.”‘) “;
}
$where = implode(‘ OR ‘,$kwsqlarr);  
if (trim($where)==”") $where=” 1 “;

$sql=”Select DISTINCT tp.namerule,tp.typedir,dede_archives.* From dede_taglist   tl left join dede_archives on tl.aid=dede_archives.ID   left join dede_arctype tp on dede_archives.typeid=tp.ID where {$sql} and ( $where) and   dede_archives.ID<>$aid order by dede_archives.litpic desc,dede_archives.click desc”; //排序按有缩略图、点击率高的排名靠前
$dsql->SetQuery($sql);
$dsql->Execute();
$ss=”";
$i=0;
while($row=$dsql->GetObject()){
$url=GetFileUrl($row->ID,$row->typeid,$row->senddate,$row->title,$row->ismake,$row->arcrank,$row->namerule,$row->typedir,$row->money);                              
$ss=$ss.”<li><a href=’”.$url.”‘ title=’”.$row->title.”‘>”;
if ($titleLen!=0) $ss=$ss.cn_substr($row->title,$titleLen);
else $ss=$ss.$row->title;
$ss=$ss.”</A></LI>”;        
$i++;
if (($rowCount!=0)&&($i>=$rowCount)) return $ss;
}  
if ($ss==”") $ss=”暂无相关文章”;
return $ss;
}

第二步:在文章内容页模板(通常是article_article.htm)里,加入调用此函数的标签:例如: {dede:field name=’id’ function=’ShowTagLikeArc_by_id(20,10,0,@me)’ /}  
这个标签的意思就是:从所有栏目里,查找本篇文章的tag相关文章,一共找10条,标题显示最长为20个字
又如: {dede:field name=’id’ function=’ShowTagLikeArc_by_id(0,0,2,@me)’ /}  
这个标签的意思就是:从ID为2栏目及其所有子栏目里,查找本篇文章的tag相关文章,不限制文章数量,标题显示不限字数

附注:
1   生成出来的相关文章HTML形如:
<li><a href=”/html/xxxx/CCC.html” title=”C文标题”>C文标题</a></li>
<li><a href=”/html/xxxx/dddd.html” title=”D文标题”>D文标题</a></li>
如果你的模板有样式方面的要求,可自行调整代码里的<li>部分
2   目前得到的相关文章,是按有缩略图且点击率高的拍列靠前,如需有自己的排序要求,请修改代码里的order by dede_archives.litpic desc,dede_archives.click desc部分

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值