如何在DEDECMS织梦模板中调用相关文章?
在织梦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)设计的实用工具,主要用于高效、快速地导入大量文章内容,这个插件极大地提升了网站内容更新和管理的效率,尤其适合那些需要频繁更新...
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权请联系我们,一经查实立即删除!