在织梦CMS中调用相关文章,可以通过修改模板文件和系统文件来实现。具体方法是在文章模板中添加相关代码,并在likearticle.lib.php文件中进行相应修改。
织梦(DedeCMS)是一款流行的内容管理系统,广泛应用于企业建站和信息管理,在网站运营中,调用相关文章不仅可以提高用户体验,还能增加页面的SEO效果,下面将详细介绍如何在织梦系统中调用相关文章:

一、调用当前栏目的相关文章
1、使用默认标签
织梦系统自带一个{dede:likearticle} 标签,用于调用当前栏目下的相关文章,这个标签简单易用,但功能较为有限。
{dede:likearticle col='2' row='10' titlelen='42'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:likearticle}
参数说明:
col:分多少列显示(默认为单列)
row:返回文档列表总数

titlelen长度
2、修改系统文件以调用全站相关文章
如果希望调用全站的相关文章,需要修改系统文件include/taglib/likearticle.lib.php,具体步骤如下:
打开include/taglib/likearticle.lib.php 文件。
找到第102行代码:

$typeid = "And arc.typeid in($typeid) And arc.id<>$arcid";
将其修改为:
$typeid = "And arc.id<>$arcid";
保存并覆盖原文件,然后重新生成文章页即可。
二、自定义类库文件实现精准调用
1、创建自定义类库文件
为了更精准地获取相关文章,可以创建一个自定义类库文件liketags.lib.php:
if(!function lib_liketags(&$ctag,&$refObj)) {
global $dsql,$envs;
//属性处理
$attlist = "row|12,titlelen|30,infolen|250,col|1,tablewidth|100,typeid|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($typeid) ? $typeid : 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#@__tagindex where $getsql ");
while ($arow = $dsql>GetArray('me')) {
$tids[] = $arow['id'];
}
$tid = join(',', $tids);
if ($tid != '') {
$dsql>Execute("me", "Select aid From#@__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'];
}
}
}
//获得附加表的相关信息
$addField = "";
$addJoin = "";
if (is_object($refObj>ChannelUnit)) {
$addtable = $refObj>ChannelUnit>ChannelInfos['addtable'];
if ($addtable != "") {
$addJoin = " LEFT JOIN $addtable ON arc.id = ".$addtable.".aid ";
$addField = "";
$fields = explode(",", $refObj>ChannelUnit>ChannelInfos['listfields']);
foreach ($fields as $k => $v) {
$nfields[$v] = $k;
}
foreach ($refObj>ChannelUnit>ChannelFields as $k => $arr) {
if (isset($nfields[$k])) {
if (!empty($arr['rename'])) {
$addField .= ",".$addtable.".".$k." as ".$arr['rename'];
} else {
$addField .= ",".$addtable.".".$k;
}
}
}
}
}
if ($eregtype == 'tag' && count($ids) < 1) {
if (!empty($refObj>Fields['keywords'])) {
$keyword = $refObj>Fields['keywords'];
$ids = GetSonIds($typeid);
if ($ids != '') {
$ids = implode("','", $ids);
$ids = str_replace(",", ",", $ids);
}
$dsql>SetQuery("SELECT @meValue FROM#@__archives WHERE arcrank > 1 AND typeid IN($ids) AND keywords LIKE '%$keyword%'");
while ($dsql>dsql()) {
$ids[] = $dsql>result;
}
} else {
$ids[] = 0;
}
} elseif ($eregtype == 'all') {
if ($ids == '') {
$ids[] = 0;
} else {
$ids = implode("','", $ids);
$ids = str_replace(",", ",", $ids);
织梦dedecms批量导入excel表文章内容插件是一款针对织梦内容管理系统(DedeCMS)设计的实用工具,主要用于高效、快速地导入大量文章内容,这个插件极大地提升了网站内容更新和管理的效率,尤其适合那些需要频繁更新...