管理系统(DEDECMS)中,调用顶级栏目名称的方法有多种,可以根据具体需求选择适合的方案,以下是几种常见的方法及其详细说明:
方法一:使用字段标签
1、{dede:field name="typename"}:这是最基础的调用当前栏目名称的方法。
2、{dede:channel type=’son’ row=’5′} [field:typename/] {/dede:channel}:用于调用该顶级频道下的所有子栏目,row
参数表示调用的栏目数量。
3、{dede:type typeid=’栏目id’} [field:typename/] {/dede:type}:用于调用指定ID的栏目名称,但只能调用一个栏目。
方法二:使用PHP运行标签
1、方法一:
“`php
{dede:field.typeid runphp=’yes’}
$ID = @me;
$sql = "SELECT * FROMdede_arctype
WHERE id=$ID";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
$relID = "$row[reid]";
if ($relID == 0) {
@me = $row[‘typename’];
} else {
$sql = "SELECTtypename
FROMdede_arctype
WHERE id=$relID";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
@me = $row[‘typename’];
}
{/dede:field.typeid}
“`
这种方法通过SQL查询获取顶级栏目名称,适用于二级栏目。
2、方法二:
“`php
{dede:field.title runphp=’yes’}
list($toptype, $sontype) = split(‘/’, @me);
@me = $toptype;
{/dede:field.title}
“`
该方法通过分割路径字符串获取顶级栏目名称,适用于二级栏目。
3、方法三:
“`php
{dede:field.typeid runphp=’yes’}
$ID = @me;
$sql = "SELECT * FROMdede_arctype
WHERE id=$ID";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
$relID = "$row[reid]";
$topID = "$row[topid]";
if ($relID == 0) {
@me = $row[‘typename’];
} else {
$sql = "SELECTtypename
FROMdede_arctype
WHERE id=$topID";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
@me = $row[‘typename’];
}
{/dede:field.typeid}
“`
该方法是改良版,可以针对无限级子栏目获取顶级栏目名称。
方法三:通过修改include/common.func.php文件
1、步骤:找到并编辑include/common.func.php文件,找到function GetTopTypename($id),将这个函数中的dede数据库前缀改成自己的数据库前缀。
相关问答FAQs
1、Q:如何在首页输出指定顶级栏目下的子栏目列表?
A:可以使用以下代码实现:
“`php
{dede:channelartlist typeid=’顶级栏目id’ row=’4′}
<a href="{dede:field name=’typeurl’/}">{dede:field name=’typename’/}</a>
{/dede:channelartlist}
“`
typeid
为指定的顶级栏目ID,row
控制显示的子栏目数量。
2、Q:如何调用指定ID的栏目?
A:可以使用以下代码实现:
“`php
{dede:type typeid=’栏目id’} [field:typename/] {/dede:type}
“`
此方法仅能调用一个指定ID的栏目名称。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1104557.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复