-
DEDECMS栏目页与内容页调用上级栏目名称和链接的方法(附多种调用代码)
- 时间:2025-03-31 15:46:53 来源: 人气:1
在使用DEDE CMS进行模板开发时,经常需要调用上一级栏目的名称和链接。以下是一篇经过改写、符合SEO优化的文章,包含代码示例,并按照要求进行了格式化。 ---
在制作DEDE模板的过程中,我们经常会遇到需要调用上级栏目名称和链接的情况。为了实现这一功能,我们可以采用以下方法。
以下是具体实现方式:
<a href="{dede:field.typeid runphp='yes'}
global $dsql ;
$reid = $dsql->GetOne("SELECT reid FROM dede_arctype where id=@me");
$reid = $reid['reid'];
$typename = $dsql->GetOne("SELECT typedir FROM dede_arctype where id=$reid");
@me=str_replace('{cmspath}','',$typename['typedir']);{/dede:field.typeid}">
{dede:field.typeid runphp='yes'}
global $dsql ;
$reid = $dsql->GetOne("SELECT reid FROM dede_arctype where id=@me");
$reid = $reid['reid'];
$typename = $dsql->GetOne("SELECT typename FROM dede_arctype where id=$reid");
@me=$typename['typename'];{/dede:field.typeid}</a>
其中,红色字体部分为栏目链接的调用代码,而蓝色字体部分则是用于调用栏目名称的代码。
当然,还有其他多种调用方式,例如:
1. 调用当前栏目的名称:
{dede:field name="typename"}
2. 调用顶级频道下所有子栏目(row表示调用数量):
{dede:channel type='son' row='5'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:channel}
3. 调用子栏目的当前顶级栏目名称:
{dede:channel type='top'}<a>[field:typename/]</a> {/dede:channel}
4. N级子栏目调用最上级栏目名称:
{dede:field name='position' runphp='yes'}
$tc="-"; //分隔符
$tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符
$tf=split($tw,@me); //分解成数组
$ta=1;$tk=trim($tf[$ta]);$tk=substr($tk,0,-2);@me=$tk; //赋值给@me
{/dede:field}
5. N级子栏目调用上级栏目名称:
方法一:
{dede:field name='position' runphp='yes'}
$tc="-"; //分隔符
$tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符
$tf=split($tw,@me); //分解成数组
$ta=(count($tf)-3);$tk=trim($tf[$ta]);@me=$tk; //赋值给@me
{/dede:field}
方法二:
<a href={dede:field.typeid runphp='yes'}
global $dsql ;
$reid = $dsql->GetOne("SELECT reid FROM dede_arctype where id=@me");
$reid = $reid['reid'];
$typename = $dsql->GetOne("SELECT typedir FROM dede_arctype where id=$reid");
@me=str_replace('{cmspath}','',$typename['typedir']);{/dede:field.typeid}
>{dede:field.typeid runphp='yes'}
global $dsql ;
$reid = $dsql->GetOne("SELECT reid FROM dede_arctype where id=@me");
$reid = $reid['reid'];
$typename = $dsql->GetOne("SELECT typename FROM dede_arctype where id=$reid");
@me=$typename['typename'];{/dede:field.typeid}</a>
6. 调用指定栏目:
{dede:type typeid='栏目id'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:type}
7. 实现“文章标题-二级栏目-一级栏目-网站名”的标题栏显示:
{dede:field name='title'/}-{dede:field name='position' runphp='yes'}
$tc="-"; //分隔符
$tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符
@me=html2text(@me); //去除HTML标签
$tf=split($tw,@me); //分解成数组
for($ta=(count($tf)-2);$ta>=1;$ta--){ //循环赋值给$tk
$tk.=trim($tf[$ta]).$tc;}$tk=substr($tk,0,-1);@me=$tk; //赋值给@me
{/dede:field}-{dede:global name='cfg_webname'/}
此外,还可以通过以下方法调用顶级栏目名称:
{dede:field.typeid runphp='yes'}
$ID = @me;
$sql = "SELECT * FROM `dede_arctype` WHERE id=$ID";
$query = mysql_query($sql);$row=mysql_fetch_array($query);
$relID = "$row[reid]";
if($relID == 0) {@me = $row[typename];}
else{$sql = "SELECT `typename` FROM `dede_arctype` WHERE id=$relID";
$query = mysql_query($sql);
$row=mysql_fetch_array($query);
@me = $row[typename];}
{/dede:field.typeid}
以上方法可以帮助您更灵活地调用DEDE栏目的相关信息,从而提升模板的功能性和用户体验。
--- 希望这篇文章能够满足您的需求!相关文章
-
在网站建设与维护的过程中,优化代码结构和功能是提升网站性能的重要步骤。本文将介绍如何通过自定义函数实现文章删除时自动清理相关资源的功能,从而提高系统的整洁性和存储效率。以下是具体的操作步骤及代码实现。首先, 在 `/include` 目录下创建一个名为 `extend.func.php` 的文件...2025-03-31
-
在进行图片上传操作时,用户可能会遇到302错误以及带有ERROR提示的图片上传失败问题。这些问题可能由多种原因引发,因此本文将对这些情况进行整理,以帮助大家更有效地定位并解决问题。 第一种情况:图片文件本身损坏。 这种情况会导致系统返回ERROR错误提示,不过发生概率较低。如果怀疑是图片损坏导致的...2025-03-31
-
如果您正在寻找一种高效的方法来使用Dedecms模板搭建网站或论坛,那么本文将为您提供详尽的指导。从模板解压到最终完成配置,每一步都将清晰呈现,帮助您快速掌握整个流程。 第一步:解压Dedecms模板 将下载的Dedecms模板文件解压出来,确保所有文件完整无误。如下图所示: 第二步:获取D...2025-03-31
-
Dedecms Dede 附加表自定义字段与主表文章关联方法
在使用DedeCMS开发装修网站时,设计师和设计作品之间的关联是一个重要的功能需求。通常情况下,文章(作品)的内容部分存储在主表dede_addonarticle中,而自定义字段则存储在附加表dede_archives中。为了实现这一功能,可以采用以下两种方法。 ① 根据发布人调用相关文章; ...2025-03-31