dedecms如何利用tag来调取相关文章

DEDE文章里,很多人都是只填了TAG,而没有填写关键字,更不要说手动去设置其相关文章了。

所以,就希望有一个功能,可以列出当前文章的按TAG进行相关匹配的文章,作为其相关文章。

例如:A文章的tag是“证券 金融 次贷”,B文的TAG是“美女 时尚”,C文的TAG是“美女 次贷”,D文的tag是“证券
贬值”,那么A文章用次此修改后得到的相关文章就是C和D,B文的相关文章是C,C文的相关文章是A和B,D文相关文章是A

修改方法为以下两步(已在DEDE5.1 GBK版上调试通过,如果你是要修改UTF-8版本,切记不要用记事本打开DEDE自带的文件):

第一步:在include\inc_functions.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 #@__tag_list 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<>1 ";

$sql="Select DISTINCT tp.namerule,tp.typedir,#@__archives.* From #@__tag_list
tl left join #@__archives on tl.aid=#@__archives.ID left join #@__arctype tp on
#@__archives.typeid=tp.ID where {$sql} and ( $where) and
#@__archives.ID<>$aid order by #@__archives.litpic desc,#@__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 #@__archives.litpic
desc,#@__archives.click desc部分,不懂的请查阅跟帖或跟贴提问,其他网友代为回答,我将给予一定热心助人奖励

—————————————————————————————————————————————————

温馨提示:

*
模板文件通常在template/default目录里,文章页的模板叫article_article.htm,且本拓展修改的标签,只能放在文章内容页。

*
本修改,需要具备一定的模板和HTML的基础知识,如果完全没有这些基础知识,在修改模板使用标签时会遇到一定困难,请不要使用QQ问我,因为我也很难帮助你,也没有足够的时间帮助你,这就好比小学生遇到初中题目一样,需要你自己把基础知识进行学习和摸索

*
具体的模板和HTML的知识,属于编辑模板的基础知识,最好还是自学一下,多看DEDE自带的模板、DEDE模板及标签的帮助文件、HTML基本概念、CSS的知识、善用论坛搜索和百度google,多掌握一点,对你自己的站长生涯也有好处。

*
有问题,请先翻看前面的跟贴是否已解决,或跟帖详细描述,入门级问题我一般就不作回答了,如果你自己摸索了2个星期,又实在很想用这个代码,可以来找我,但千万别一遇到问题就问,因为我实在没有足够的精力回答所有问题,见谅!

*
如果有特殊要求的,或者DEDE是特殊情况的(如版本不同、有特殊设置、修改过代码的),或者实在没有任何HTML、模板、PHP方面的知识但又很想使用这个的,可以联系我进行定制。

dedecms如何利用tag来调取相关文章,布布扣,bubuko.com

时间: 2024-09-28 16:51:19

dedecms如何利用tag来调取相关文章的相关文章

DedeCms用tag调用全站相关文章

转自:http://blog.sina.com.cn/hyiyun 近些天,有网友的电脑出现:开机后屏幕一片漆黑,但屏幕中央显示有鼠标指针,并且可移动.按键盘上的不论什么键都没有反应,鼠标也仅可移动,单.双击都无效.说得简单点儿,就是电脑黑屏,仅仅显示鼠标. 如上图 事实上,我早在11月2日早晨8:30就遇到这个问题了,当时是公司技术部的一台电脑出现的这个问题,我通过"修复安装windows XP"都没能解决问题,最后是"全新安装windows XP"才攻克了.就在

织梦DedeCms调用全站相关文章方法

织梦DedeCms 有个标签可以调用相关文章,通过下面的修改可以调用全站的相关文章,文章页内显示相关文章内容,可以提高关键词密度,还是挺不错的. 模板调用代码 <div>     <dl>           <dt><strong>相关文章</strong></dt>               <dd>                  <ul>                       {dede:li

dedecms如何调用指定栏目下的相关文章

首先明确要达到两个要求: 1.要调用指定栏目 2.调用的文章要包含指定关键字 相关文档调用 {dede:likeart titlelen=’24′ row=’10′} <li><a title=”[field:title function='htmlspecialchars(@me)'/] ” href=”[field:arcurl /]“>[field:title /]</a></li> {/dede:likeart} 注:此为dede官方的调用模板,但至

织梦相关文章调用方法

存在问题 DEDECMS文章内容页默认模板缺少相关文章,对用户及搜索引擎查找及判断文章主题不利. 解决办法 利用DEDECMS的相关文章标签:{dede:likearticle},调用方法如下: {dede:likearticle row='10' titlelen='80'} <li><a href="[field:arcurl/]" title="[field:title /]">[field:title /]</a><

【内容建设】以DEDECMS为例,讲解站内文章编辑的一些注意点,有益无害

以DEDECMS为例,讲解站内文章编辑的一些注意点,有益无害. 1.    标题:尽量拓展长尾词,攻略性为主 2.    自定义属性:方便前台调用.首页更新带动 3.    Tag标签:尽量控制在4-6个字,数量不超过3个 4.    关键词:1-3个,提取标题中的长尾词 5.    内容摘要(描述/尽量不要自动获取): 1) 不超过3行(少5-6字) 2) 包含1-2次标题中的长尾词 3)突出三点:标题(长尾词).医院名称(医师).诊断手法 小结:关键词.描述内容均以标题为中心展开. 正文部分

相关文章、关联文章、产品功能开发方案

内容管理系统,如文章管理.产品管理的时候,经常会出现这样的场景:某篇文章为系列文章,或者为系列产品,然后需要这个系列的文章/产品在展示的时候,展示出同系列的文章或者产品.同时,在后台管理的时候,需要在有关联关系后,能对关联关系进行管理(增删改查). 这样的需求,因为考虑到信息维护的唯一性,原计划是新增数据表,用中间数据表对关键结构进行存储管理,这样更规范,也不用对原来的文章数据进行破坏,不增加大数据量的文章表字段.不过后来考虑到后期在管理的时候,工程量开发更大,就抛弃了这个方案. 还是用最简单的

我的Android开发相关文章

Pro Android学习笔记: Pro Android学习笔记(一零七):2D动画(2):layout渐变动画 2014.7.25 Pro Android学习笔记(一零六):2D动画(1):frame by frame 2014.7.21 Pro Android学习笔记(一零五):Alarm Manager(3):request code 2014.7.17 Pro Android学习笔记(一零四):Alarm Manager(2):周期发送和取消 2014.7.15 Pro Android学

wordpress可以自定义获取相关文章的代码

将下面的代码插入functions.php中 获取相关文章的策略: 手动指定 > 标签 >分类 > 随机 //相关文章 function add_related_posts($content){ return $content . wp_related_posts(); } add_filter ('the_content', 'add_related_posts'); //hook function wp_related_posts(){ global $post; $num = 5;

phpcms 调取全站文章

路径:phpcms/module/content/classes/content_tag.class.php 添加如下方法 /** * 列表页标签:主要返回的是主表中数据与附表中数据 * @param $data */ public function lists_all($data) { $this->db->set_model(1);//将模型手动指定为文章模型,为什么?因为根据源代码的套路,模型id的是根据catid来设置的,但是现在获取的是所有的文章,而不局限于某个栏目,所以只能手动将其