官方dede:tag默认只能调用指定的1个栏目的,无法指定多个栏目
例如,我要调用指定的1,2,3这个几个栏目和子栏目的TAG标签出来
{dede:tag row='30' sort='new' getall='1' typeid='1,2,3'} <a href="[field:link/]">[field:tag/]</a> {/dede:tag}
打开 /include/taglib/tag.lib.php 找到 ,大概在67行左右
$addsql = " WHERE typeid='$typeid' ";
改成
//指定了多个栏目时 if( preg_match('#,#', $typeid) ) { $typeids = explode(',', $typeid); foreach($typeids as $ttid) { $typeidss[] = GetSonIds($ttid); } $typeidStr = join(',', $typeidss); $typeidss = explode(',', $typeidStr); $typeidssok = array_unique($typeidss); $typeid = join(',', $typeidssok); $addsql = " WHERE typeid IN ($typeid) "; } else { $addsql = " WHERE typeid IN (".GetSonIds($typeid).") "; }
实现效果: 实现步骤1:后台-系统-基本参数-添加变量 变量名称 cfg_hotkeys 变量类型 文本 参数说明 热门关键词
调用同一个作者的文章的标签代码
使用场景 在文章页中我们经常会显示相关文章之类的文章列表,就需要使用{dede:likearticle}标签,但是默认的 likearti
织梦CMS内容页有上一篇下一篇文章,没有上一个栏目下一个栏目,我们可以不用修改程序内核文件,直接在模板里用
修改方法: 编辑打开\include\taglib\flink.lib.php 查找 elseif($type==image) 在其上面加入 elseif($type==option){$link=optionvalue=.$dbro
判断是否有子栏目,有就输出 javascript:; ,没有子栏目就直接输出一级栏目的链接 {dede:fieldname=typeidrunphp=yes}global$dsq