dede 生成的栏目信息排列顺序不按id顺序排列,怎么办
dede数据库字段说明,dede_addonarticle 附加文章表,操作方法如下:
1、首先登录dedecms网站后台,在“核心”模块下找到“网站栏目管理”,如下图所示。
2、然后在“栏目管理中”增加顶级栏目。
3、接着在常规选项中填写栏目名称,文件保存目录和目录相对位置。
4、栏目内容可填写可不填写,如果填写,可以在栏目页通过“{dede:fieldcontent}”调用。
5、设置好后,点击保存,这样就成功新建了一个顶级栏目,如下图所示就完成了。
方法:typeid='top' 或者typeid='asdas'任意字母不为空不为数字 写上这一个属性就可以了
{dede:arclist orderby='pubdate' titlelen='28' row='7' typeid='top' }
如果是在文章页 这篇文章又是最新刚发布的,那么最新文章里就会包含这篇文章,想要去除这篇文章,可以加limit{dede:arclistorderby='pubdate' titlelen='28'row='7'typeid='top' limit='1,7'}
当然如果不是最新的文章,再次生成的时候还是有可能和当篇文章重复的
织梦内容管理系统(DedeCms) 以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历多年的发展。
目前的版本无论在功能,还是在易用性方面,都有了长足的发展和进步,DedeCms免费版的主要目标用户锁定在个人站长,功能更专注于个人网站或中小型门户的构建,当然也不乏有企业用户和学校等在使用该系统。
修改前先做好备份
DEDECMS首页频道channelartlist标签通过typeid属性排序方法: DEDECMS模板
找到\include\taglib\channelartlistlibphp文件,使用DW打开,然后修改第78行 DEDECMS模板
$dsql->SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
FROM `dede_arctype` WHERE $tpsql ORDER BY sortrank ASC LIMIT $totalnum"); 织梦模板团
修改为
$dsql->SetQuery("Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
from `#@_arctype` where $tpsql order by substring_index( '$typeid',id,1) limit $totalnum"); DEDECMS模板
这样修改了后,就可以通过{dede:channelarclist typeid='2,4,1,3'}对应输出相应栏目的内容了。 DEDECMS模板
这样是很有用处的哦!有时我们就需要这样的修改排序,很不错的方法。
GetParentId(@me)
<img src="{dede:globalcfg_templets_skin/}/webimg/leftmenu_title_{dede:fieldtypeid function="GetParentId(@me)"/}png" width="240" height="56" />栏目列表-->更改->高级选项 ->文章命名规则->{aid} 这个指的就是ID,去掉就不会显示了,
不过栏目里不设置ID文章会被最新的一篇覆盖。
可以在文章编辑中的高级参数中直接定义“自定义文件名:”这样文章url可以直接指定你定义的
方法和详细的操作步骤如下:
1、第一步,打开织梦Dedecms的主界面,直接找到“增加顶级栏目”选项并选择跳转,见下图,转到下面的步骤。
2、第二步,执行完上面的操作之后,进入新对话框,根据实际情况进行设置,见下图,转到下面的步骤。
3、第三步,执行完上面的操作之后,请单击“确定”按钮,见下图,转到下面的步骤。
4、第四步,执行完上面的操作之后,可以调用当前栏目的文章列表,见下图。这样,就解决了这个问题了。
channelartlist获取当前频道的下级栏目的内容列表标签
基本语法:
{dede:channelartlist row=6}
<dl>
<dt><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a></dt>
<dd>
{dede:arclist titlelen='42' row='10'} <ul class='autod'>
<li><a href="[field:arcurl /]">[field:title /]</a></li>
<li>([field:pubdate function="MyDate('m-d',@me)"/])</li>
</ul>
{/dede:arclist}
</dl>
{/dede:channelartlist}
参数说明:
typeid = '0' 频道ID,多个请用","分隔
row = '20' 获取的栏目返回值
其他说明:
除了宏标记外,channelArtlist 是唯一一个可以直接嵌套其它标记的标记,不过仅限于嵌套
{dede:type}{/dede:type} 和 {dede:arclist}{/dede:arclist} 两个标记。
底层模板变量:
包含{dede:type}{/dede:type}及{dede:arclist}{/dede:arclist}下面所有底层模板变量。
需要加入栏目ID,如:typeid='1,2,3,4,5'
同1
需要加入关键词,如:keyword='关键词'
不存在,只能通过畅言等第三方插件实现。
虽然都给出了答案,但是DEDE这个系统负载能力不是很好,如果文章多了,你建立这么多东西在内容页的话生成速度就极大降低了,建议你把想的这些都变成公共文件然后用静态语言进行调用。例如:<!--#include virtual="/a/thtml" -->(我把服务器开通了SSI功能就能调用shtml htm html文件了。)
0条评论