方法一:使用标签{dede:field.typeid function="GetTopid(@me)"/}
在需要调用顶级栏目ID的地方,可以直接使用以下标签语法:
{dede:field.typeid function="GetTopid(@me)"/}
这种方法经过测试是可行的,能够直接获取当前栏目的顶级栏目ID。
方法二:修改include/taglib/type.lib.php文件
1、找到include
目录下的taglib
目录中的type.lib.php
文件。
2、找到以下代码:
$row = $dsql>GetOne("Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath Fromdede_arctype
where id='$typeid' ");
3、将其修改为:
$row = $dsql>GetOne("Select id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath Fromdede_arctype
where id='$typeid' ");
4、在紧接着的下一行添加:
if ($row['topid'] == 0) { $row['topid'] = $row['id']; }
这样,无论在顶级栏目还是子栏目中,都可以成功调用到顶级栏目的ID。
表格归纳
方法 | 步骤 | 优点 | 缺点 |
使用标签 | 直接插入标签{dede:field.typeid function=”GetTopid(@me)”/} | 简单易用,无需修改代码 | 功能有限,仅能获取顶级栏目ID |
修改type.lib.php文件 | 修改文件并添加条件语句 | 功能全面,可获取更多信息 | 需要一定的代码知识 |
常见问题解答FAQs
1. 如何在DEDECMS列表页和内容页调用顶级栏目名称?
答:可以通过以下两种方法来实现:
1、使用标签:在需要调用的地方插入以下标签:
{dede:field name='typename' function="GetTopid(@me)"/}
2、修改type.lib.php文件:找到include/taglib/type.lib.php
文件中的相关代码,并进行如下修改:
$row = $dsql>GetOne("Select id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath Fromdede_arctype
where id='$typeid' ");
if ($row['topid'] == 0) { $row['topid'] = $row['id']; }
这样就可以在模板中通过$row['typename']
来获取顶级栏目的名称。
2. 如何在DEDECMS中调用顶级栏目的URL?
答:可以通过以下两种方法来实现:
1、使用标签:在需要调用的地方插入以下标签:
{dede:field name='typeurl' function="GetTopid(@me)"/}
2、修改type.lib.php文件:找到include/taglib/type.lib.php
文件中的相关代码,并进行如下修改:
$row = $dsql>GetOne("Select id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath Fromdede_arctype
where id='$typeid' ");
if ($row['topid'] == 0) { $row['topid'] = $row['id']; }
这样就可以在模板中通过$row['typedir']
来获取顶级栏目的URL。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1229860.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复