如何在Dedecms中调用当前栏目的链接?

在DedeCMS中,可以使用{dede:field name='typedir'/}来调用当前栏目的链接。

调用当前栏目链接的方法

方法一:内容页模板调用

1、打开文件:找到并打开include/arc.archives.class.php 文件。

2、添加代码:在约第241行的位置,找到如下代码:

“`php

//设置全局环境变量

$this>Fields[‘typename’] = $this>TypeLink>TypeInfos[‘typename’];

“`

在其下一行加入以下代码:

“`php

//设置全局环境变量

$this>Fields[‘typelink’] = $this>TypeLink>GetOneTypeLink($this>TypeLink>TypeInfos);

$this>Fields[‘typeurl’] = $this>TypeLink>GetOneTypeUrl($this>TypeLink>TypeInfos);

“`

3、调用代码页模板的适当位置,使用以下标签调用当前栏目的链接和名称:

“`html

{dede:field.typelink/} 带链接的栏目名称,如:栏目名称

{dede:field.typeurl/} 仅栏目链接,如:/news

“`

标签类型 描述
{dede:field.typelink/} 调用带链接的栏目名称
{dede:field.typeurl/} 调用仅包含链接的栏目路径

方法二:文章页或列表页调用

1、打开文件:找到并打开include/helpers/extend.helper.php 文件。

2、添加函数:在文件中添加以下函数:

如何在Dedecms中调用当前栏目的链接?

“`php

/* 获取顶级栏目相关信息 */

if (!function_exists(‘GetTopTypename’)) {

function GetTopTypename($tid, $field) {

global $dsql;

if ($field == ‘url’) {

return $dsql>GetOne("SELECT typedir FROM dede_arctype WHERE id=$tid");

} elseif ($field == ‘name’) {

return $dsql>GetOne("SELECT typename FROM dede_arctype WHERE id=$tid");

}

}

}

“`

3、调用代码:在文章页或列表页模板的适当位置,使用以下标签调用当前栏目的链接和名称:

“`html

<a href="{dede:field name=’typeurl’ function="GetTopTypename(‘url’,@me)" /}">{dede:field name=’typename’ function="GetTopTypename(‘name’,@me)" /}</a>

“`

标签类型 描述
{dede:field name=’typeurl’ function=”GetTopTypename(‘url’,@me)” /} 调用当前栏目的URL地址
{dede:field name=’typename’ function=”GetTopTypename(‘name’,@me)” /} 调用当前栏目的名称

FAQs

Q1:为什么在内容页模板中使用 {dede:field.typeurl/} 无法调用到栏目链接?

A1:在织梦CMS的内容页模板中,直接使用 {dede:field.typeurl/} 是无法调用到当前栏目链接的,这是因为系统并没有为这种需求提供默认支持,需要通过修改include/arc.archives.class.php 文件来增加对这一功能的支持。

Q2:如何在文章页或列表页调用当前栏目的顶级栏目名及链接?

A2:在文章页或列表页模板中,可以通过添加自定义函数来实现调用当前栏目的顶级栏目名及链接,具体操作步骤包括在include/helpers/extend.helper.php 文件中添加函数GetTopTypename,然后在模板中使用相应的标签进行调用。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1111486.html

(0)
未希的头像未希新媒体运营
上一篇 2024-09-30 21:51
下一篇 2024-09-30 21:54

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入