如何在DEDECMS中修改文章列表页的tag调用?

要修改DEDECMS文章列表页调用tag的方法,可以在/include/arc.listview.class.php文件中的GetTopTypeLink()函数里添加如下代码:,,“php,$tagid = $this>Fields['tagid'];,if ($tagid) {, $query = "SELECT tag, COUNT(*) as num FROM #@__taglist WHERE id IN ($tagid) ORDER BY num DESC";, $dsql>SetQuery($query);, $result = $dsql>Execute();, while ($row = $dsql>GetObject()) {, $tags[] = ''.$row>tag.'';, }, $tags = implode(',', $tags);, $this>Fields['tag'] = $tags;,} else {, $this>Fields['tag'] = '';,},“,,这段代码会在文章列表页显示文章对应的标签。

修改GetTags函数

如何在DEDECMS中修改文章列表页的tag调用?

1、打开文件

找到并打开include/common.func.php 文件。

定位到大约第755行,找到以下代码:

“`php

function GetTags($aid) {

global $dsql;

$tags = ”;

$query = "Select tag Fromtf_taglist where aid=’$aid’ ";

$dsql>Execute(‘tag’,$query);

while($row = $dsql>GetArray(‘tag’)){

$tags .= ($tags==” ? $row[‘tag’] : ‘,’.$row[‘tag’]);

}

return $tags;

}

“`

2、修改代码

将上述代码修改为:

“`php

function GetTags($aid) {

global $dsql;

$tags = ”;

$query = "Select tag Fromdede_taglist where aid=’$aid’ ";

$dsql>Execute(‘tag’,$query);

while($row = $dsql>GetArray(‘tag’)){

$tags .= ($tags==” ? "<a href=’/tags.php?/{$row[‘tag’]}’>{$row[‘tag’]}</a>" : ‘,’."<a href=’/tags.php?/{$row[‘tag’]}’>{$row[‘tag’]}</a>");

}

return $tags;

}

“`

3、保存并关闭文件

保存对include/common.func.php 的修改,然后关闭文件。

4、更新模板

在需要调用带链接标签的位置添加以下代码:

“`html

[field:id function=GetTags(@me)/]

“`

方法二:使用runphp属性

1、打开模板文件

找到并打开templets/default/list_article.htm 文件。

2、定位到列表位置

在列表中需要显示标签的位置,添加以下代码:

“`html

[field:id runphp=’yes’]

$tsql = new DedeSql(false);

$tags = ”;

$tsql>SetQuery("Select i.tag Fromtf_taglist t left jointf_tagindex i on i.id=t.tid where t.aid=’@me’");

$tsql>Execute(‘t’);

while($row = $tsql>GetArray(‘t’,MYSQL_ASSOC)){

$tags .= "<a href=’/tags.php?/".urlencode($row[‘tag’])."’>".$row[‘tag’]."</a>";

}

@me=$tags;

[/field:id]

“`

3、保存并关闭文件

保存对list_article.htm 的修改,然后关闭文件。

方法三:使用自定义函数

1、创建新函数

include/helpers/archive.helper.php 文件中添加如下代码:

“`php

如何在DEDECMS中修改文章列表页的tag调用?

function GetTagsWithLinks($aid) {

global $cfg_cmspath, $dsql;

$tags = ”;

$query = "SELECT tag FROMma_taglist WHERE aid=’$aid’ ";

$dsql>Execute(‘tag’,$query);

while($row = $dsql>GetArray(‘tag’)) {

$tags .= ($tags==” ? "<a href=’/tags.php?/".urlencode($row[‘tag’])."’>".$row[‘tag’]."</a>" : ‘,’."<a href=’/tags.php?/".urlencode($row[‘tag’])."’>".$row[‘tag’]."</a>");

}

return $tags;

}

“`

2、调用新函数

在需要调用带链接标签的位置添加以下代码:

“`html

[field:id function=GetTagsWithLinks(@me)/]

“`

3、保存并关闭文件

保存对archive.helper.php 的修改,然后关闭文件。

方法四:直接修改模板文件

1、打开模板文件

找到并打开templets/default/list_article.htm 文件。

2、定位到列表位置

在列表中需要显示标签的位置,添加以下代码:

“`html

[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?/’.urlencode($value).’">’.$value.'</a>&nbsp;’;

}

}

@me = $revalue;

[/field:id]

“`

3、保存并关闭文件

保存对list_article.htm 的修改,然后关闭文件。

方法五:使用自定义标签库

1、创建自定义标签库

include/extend.func.php 文件中添加如下代码:

“`php

function GetCustomTags($aid) {

global $cfg_cmspath, $dsql;

$tags = ”;

$query = "SELECT tag FROMma_taglist WHERE aid=’$aid’ ";

$dsql>Execute(‘tag’,$query);

while($row = $dsql>GetArray(‘tag’)) {

$tags .= ($tags==” ? "<a href=’/tags.php?/".urlencode($row[‘tag’])."’>".$row[‘tag’]."</a>" : ‘,’."<a href=’/tags.php?/".urlencode($row[‘tag’])."’>".$row[‘tag’]."</a>");

}

return $tags;

}

“`

2、调用自定义标签库

在需要调用带链接标签的位置添加以下代码:

“`html

{dede:field name=’customtags’ function=’GetCustomTags(@me)’/}

“`

如何在DEDECMS中修改文章列表页的tag调用?

3、保存并关闭文件

保存对extend.func.php 的修改,然后关闭文件。

FAQs:DEDECMS文章列表页调用tag的修改方法常见问题解答

问题1:如何在DEDECMS v5.7版本中调用带有链接的TAG标签?

答:在DEDECMS v5.7版本中,可以通过修改include/helpers/archive.helper.php 文件来实现,具体步骤如下:

1、打开include/helpers/archive.helper.php 文件。

2、找到并注释掉第130行左右的代码:$tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']);

3、在该行下面添加以下代码:$tags .= "<a href='/tags.php?/".urlencode($row['tag'])."'>".$row['tag']."</a>";

4、保存并关闭文件,然后在模板文件中使用[field:id function=GetTags(@me)/] 调用即可。

问题2:如何在DEDECMS v5.6版本中调用带有链接的TAG标签?

答:在DEDECMS v5.6版本中,可以通过以下两种方法实现:

方法一:直接在模板文件中添加代码:

1、打开templets/default/list_article.htm 文件。

2、在列表中需要显示标签的位置,添加以下代码:

“`html

[field:id runphp=’yes’]

$tsql = new DedeSql(false);

$tags = ”;

$tsql>SetQuery("Select i.tag Fromtf_taglist t left jointf_tagindex i on i.id=t.tid where t.aid=’@me’");

$tsql>Execute(‘t’);

while($row = $tsql>GetArray(‘t’,MYSQL_ASSOC)){

$tags .= "<a href=’/tags.php?/".urlencode($row[‘tag’])."’>".$row[‘tag’]."</a>";

}

@me=$tags;

[/field:id]

“`

3、保存并关闭文件。

方法二:修改include/common.func.php 文件中的GetTags 函数:

1、打开include/common.func.php 文件。

2、找到并修改以下代码:

“`php

function GetTags($aid) {

global $dsql;

$tags = ”;

$query = "Select tag Fromtf_taglist where aid=’$aid’ ";

$dsql>Execute(‘tag’,$query);

while($row = $dsql>GetArray(‘tag’)){

$tags .= ($tags==” ? $row[‘tag’] : ‘,’.$row[‘tag’]);

}

return $tags;

}

“`

修改为:

“`php

function GetTags($aid) {

global $dsql;

$tags = ”;

$query = "Select tag Fromtf_taglist where aid=’$aid’ ";

$dsql>Execute(‘tag’,$query);

while($row = $dsql>GetArray(‘tag’)){

$tags .= ($tags==” ? "<a href=’/tags.php?/{$row[‘tag’]}’>{$row[‘tag’]}</a>" : ‘,’."<a href=’/tags.php?/{$row[‘tag’]}’>{$row[‘tag’]}</a>");

}

return $tags;

}

“`

3、保存并关闭文件,然后在模板文件中使用[field:id function=GetTags(@me)/] 调用即可。

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

(0)
未希的头像未希新媒体运营
上一篇 2024-10-01 10:34
下一篇 2024-10-01 10:35

发表回复

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

免费注册
电话联系

400-880-8834

产品咨询
产品咨询
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入