如何为织梦channelartlist设置指定的typeid排序?

avatar
作者
筋斗云
阅读量:0
你可以使用以下代码对织梦channelartlist按照指定的typeid进行排序:,,``php,,`,,请将上述代码中的field`替换为你想要排序的具体字段名。这段代码将会根据指定的typeid对channelartlist进行排序,并输出排序后的结果。

在织梦(DEDECMS)中,channelartlist 标签用于生成栏目列表,默认情况下,该标签会按照typeid 从小到大的顺序进行排序,有时我们需要根据特定的顺序来显示这些栏目,这可以通过修改channelartlist 的标签库文件来实现。

修改步骤

1、找到并打开文件

如何为织梦channelartlist设置指定的typeid排序?

打开include/taglib/channelartlist.lib.php 文件。

2、定位到关键代码

找到以下代码行:

```php

$dsql>SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM#@__arctype WHERE $tpsql ORDER BY sortrank ASC LIMIT $totalnum");

```

这一行代码位于文件的第78行左右。

3、修改 SQL 查询语句

将上述代码修改为:

```php

$dsql>SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM#@__arctype WHERE $tpsql ORDER BY FIELD(id,$typeid) LIMIT $totalnum");

```

这样修改后,channelartlist 标签将按照指定的typeid 顺序进行排序。

4、保存并替换文件

保存对channelartlist.lib.php 文件的修改,并将其上传回服务器以替换原文件。

示例代码

以下是一个完整的示例,展示了如何使用channelartlist 标签并按照指定的typeid 顺序进行排序:

 {dede:channelartlist typeid='123,29,109,110,122,28'}     <li id="bzfive{dede:global name='itemindex'/}" onmouseover="setTab('bzfive',{dede:global name='itemindex'/},{dede:global name='itemtotal'/})" class="{dede:global name=itemindex runphp='yes'}if(@me==1)@me='hover';else @me='';{/dede:global}"><a href="{dede:field name='typeurl'/}" target="_blank">{dede:field name='typename'/}</a></li> {/dede:channelartlist}

在这个示例中,typeid='123,29,109,110,122,28' 指定了栏目的 ID 顺序,channelartlist 标签将按照这个顺序生成栏目列表。

注意事项

在进行任何修改之前,请确保备份原始文件,以防出现意外情况。

确保你的网站具有足够的权限来修改和上传文件。

修改完成后,刷新页面缓存或清除浏览器缓存,以确保更改生效。

FAQs

问题1:为什么修改后的channelartlist 标签没有按指定的typeid 顺序显示?

答:这可能是由于缓存问题导致的,请尝试刷新页面缓存或清除浏览器缓存,然后重新加载页面查看效果,如果问题仍然存在,请检查channelartlist.lib.php 文件中的 SQL 查询语句是否正确修改,并确保上传的文件已正确替换服务器上的原文件。

问题2:如何恢复channelartlist 标签的默认排序行为?

答:要恢复channelartlist 标签的默认排序行为,只需将之前修改过的channelartlist.lib.php 文件中的 SQL 查询语句还原为原始状态即可,将以下代码:

 $dsql>SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM#@__arctype WHERE $tpsql ORDER BY FIELD(id,$typeid) LIMIT $totalnum");

改回为:

 $dsql>SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM#@__arctype WHERE $tpsql ORDER BY sortrank ASC LIMIT $totalnum");

然后保存文件并上传回服务器以替换原文件即可。


为了对织梦(Dedecms)中的channelartlist 模板标签按指定的typeid 进行排序,你需要使用orderby 参数,并将typeid 作为排序的依据,以下是详细的步骤和代码示例:

步骤分析

1、确定要排序的typeid

2、在channelartlist 模板标签中添加orderby 参数,并指定typeid

代码示例

 {dede:channelartlist typeid='指定typeid'orderby='typeid' orderway='desc'}   <li><a href="{dede:field name='arcurl'/}">{dede:field name='title'/}</a></li> {dede:channelartlist}

参数说明

typeid='指定typeid': 这里将'指定typeid' 替换为你想要排序的typeid 值。

orderby='typeid': 指定按照typeid 字段进行排序。

orderway='desc': 指定排序方式为降序,如果你想使用升序,可以将其改为'asc'

排版示例

 {dede:channelartlist typeid='1'orderby='typeid' orderway='desc'}   <li><a href="{dede:field name='arcurl'/}">{dede:field name='title'/}</a></li> {dede:channelartlist}

在这个例子中,typeid='1' 表示按照typeid 为 1 的内容进行排序,orderway='desc' 表示按照降序排列,根据你的需求,你可以修改typeid 的值来指定不同的分类进行排序。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!