当前位置:首页 > 行业动态 > 正文

如何在DedeCMS中同时在列表页和详情页调用带链接的Tag标签?

在DedeCMS中,列表页和详情页调用tag标签并带上链接的方法如下:,,1. 在 /include/arc.listview.class.php文件中的 GetListSql()函数里,添加如下代码:,,“ php,if($this>fields['typeid']) {, $tids = explode(',', $this>fields['typeid']);, $tagids = array();, foreach ($tids as $k => $v) {, $row = $this>dsql>GetOne("SELECT id,name FROM #@__tag WHERE typeid='$v'");, if ($row) {, $tagids[] = $row['id'];, }, }, if (count($tagids)) {, $tagids = implode(',', $tagids);, $tempstr .= " AND a.id IN (SELECT aid FROM #@__archives_tag WHERE tagid IN ($tagids))";, },},` ,,2. 在/include/arc.archives.class.php 文件中的GetResultUrl() 函数里,添加如下代码:,,` php,if($this>TagId) {, $row = $this>dsql>GetOne("SELECT name FROM #@__tag WHERE id='$this>TagId'");, if ($row) {, $this>Fields['tag'] = ''.$row['name'].'';, } else {, $this>Fields['tag'] = '';, },},` ,,3. 在模板文件(如/templets/default/list_article.htm 和/templets/default/article_article.htm )中,使用[field:tag/]`标签来调用tag标签。

实现方法

如何在DedeCMS中同时在列表页和详情页调用带链接的Tag标签?  第1张

列表页调用TAG标签并带上链接的方法

1、打开模板文件:以默认模板为例,打开/templets/default/list_article.htm 找到<small>好评:</small>[field:scores/]。

2、添加代码:在其后加上如下代码:

“`html

<small>标签:</small>

[field:id runphp=’yes’]

global $cfg_cmspath;

$tags = GetTags(@me);

$revalue = ”;

$tags = explode(‘,’, $tags);

foreach($tags as $key => $value){

if($value){

$revalue .= ‘<a href="’.$cfg_cmspath.’/tags.php?/’.$value.’/">’.$value.'</a> ‘;

}

}

@me = $revalue;

[/field:id]

“`

3、保存修改:保存后即可实现在列表页调用TAG标签并带上链接的效果。

4、代码解释:这里运用了三个知识点:

使用自带的GetTags 函数获取文档对应的TAG列表;

将获取到的值以半角符号的逗号 (,) 为标准拆分为数组;

循环数组元素,将其对应的值输出并加上链接;

为了更好的兼容,这里也用global $cfg_cmspath; 方法加载了系统基本参数里中的程序安装目录,用于在附加链接时自动兼容安装到子目录的站点。

详情页调用TAG标签并带上链接的方法

1、打开模板文件:以默认模板为例,打开/templets/default/article_article.htm 找到需要的位置。

2、添加代码:在合适位置加上如下代码:

“`html

{dede:field name=’id’ function=’getmeurl(@me)’/}

[field:id runphp=’yes’]

global $cfg_cmspath;

$tags = GetTags(@me);

$revalue = ”;

$tags = explode(‘,’, $tags);

foreach($tags as $key => $value){

if($value){

$revalue .= ‘<a href="’.$cfg_cmspath.’/tags.php?/’.$value.’/">’.$value.'</a> ‘;

}

}

@me = $revalue;

[/field:id]

“`

3、保存修改:保存后即可实现在详情页调用TAG标签并带上链接的效果。

4、代码解释:同样运用了三个知识点:

使用自带的GetTags 函数获取文档对应的TAG列表;

将获取到的值以半角符号的逗号 (,) 为标准拆分为数组;

循环数组元素,将其对应的值输出并加上链接;

为了更好的兼容,这里也用global $cfg_cmspath; 方法加载了系统基本参数里中的程序安装目录,用于在附加链接时自动兼容安装到子目录的站点。

FAQs

问题一:如何在DEDECMS中调用当前栏目的TAG标签?

答:在DEDECMS中调用当前栏目的TAG标签,可以通过以下步骤实现:

1、打开模板文件:以默认模板为例,打开/templets/default/list_article.htm。

2、添加代码:在合适位置加上如下代码:

“`html

{dede:field name=’id’ function=’getmeurl(@me)’/}

“`

3、保存修改:保存后即可实现在列表页调用当前栏目TAG标签的效果。

4、代码解释:通过{dede:field name='id' function='getmeurl(@me)'/} 调用当前文档的ID,然后结合GetTags 函数获取对应的TAG标签。

问题二:如何设置DedeCMS 5.7系统的TAG标签伪静态?

答:要设置DedeCMS 5.7系统的TAG标签伪静态,可以按照以下步骤操作:

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

2、修改代码:找到第130行左右的代码$tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']);,将其修改为$tags .= "<a href='".$cfg_cmspath."/tags.php?/".$row['tag']."/'>".$row['tag']."</a>";。

3、保存修改:保存文件后即可实现TAG标签伪静态的效果。

4、代码解释:通过修改archive.helper.php 文件中的代码,将原本不带链接的TAG标签转换为带链接的形式,从而在前端展示时能够点击跳转。

在DedeCMS中,若要同时为列表页和详情页的调用标签加上链接,您可以使用以下步骤:

1. 列表页调用标签添加链接

步骤:

1、定义链接地址

在模板中,您首先需要定义一个变量来存储链接地址。

“`html

{dede:field name=’arcurl’/} <!获取文章的URL >

“`

2、添加链接标签

使用HTML的<a>标签来为调用标签添加链接,如果要在文章标题上添加链接,可以这样写:

“`html

<a href="{dede:field name=’arcurl’/}">{dede:field title/}</a>

“`

3、调用标签

在调用文章列表的地方,使用您想要的调用标签,并将其包裹在<a>标签内。

“`html

<a href="{dede:field name=’arcurl’/}">

{dede:field title/} <!这里使用标题调用标签 >

</a>

“`

2. 详情页调用标签添加链接

步骤:

1、定义详情页链接

在详情页模板中,您可能需要将当前页面的URL赋值给一个变量,以便在调用标签时使用。

“`html

<a href="{dede:global name=’dede_weburl’/}{dede:field name=’arcurl’/}">{dede:field title/}</a>

“`

2、调用标签

在详情页模板中,您可以直接在调用标签前添加<a>标签,如果要在文章标题上添加链接:

“`html

<a href="{dede:global name=’dede_weburl’/}{dede:field name=’arcurl’/}">

{dede:field title/} <!使用标题调用标签 >

</a>

“`

代码示例:

列表页模板示例:

<ul>
   {dede:arclist row="10" titlelen="20"}
   <li>
      <a href="{dede:field name='arcurl'/}">
         {dede:field title/}
      </a>
   </li>
   {/dede:arclist}
</ul>

详情页模板示例:

<h1>
   <a href="{dede:global name='dede_weburl'/}{dede:field name='arcurl'/}">
      {dede:field title/}
   </a>
</h1>

通过以上步骤,您可以在DedeCMS的列表页和详情页上为调用标签添加链接,请根据实际需求调整模板代码。

0