如何在DedeCMS中利用getall方法获取当前页面的Tag标签(超链接)?
- 行业动态
- 2024-10-18
- 1
在Dedecms中,使用 getall函数获取当前页面的tag标签(超链接)的方法如下:,,“ php,$tags = getall("SELECT * FROM dede_tag WHERE aid={$aid}");,foreach ($tags as $tag) {, echo '' . $tag['tag'] . '';,},` ,,$aid 是当前文章的ID。这段代码会查询数据库中的dede_tag`表,获取与当前文章相关的所有标签,并输出为超链接的形式。
在DedeCMS(织梦内容管理系统)中,使用getall获取当前页面的tag标签并生成超链接的方法如下:
基本语法
{dede:tag row='30' sort='new' getall='0'} <a href='[field:link/]'>[field:tag /]</a> {/dede:tag}
参数说明
row='30':调用条数为30条。
sort='new':排序方式,可以是month(按月)、rand(随机)、week(按周)。
getall='0':获取类型,0表示只获取当前内容页的TAG标记,1表示获取全部TAG标记。
示例代码
1. 首页、列表页和文章页调用带超链接的TAG标签
{dede:tag row='30' sort='new' getall='0'} <a href='[field:link/]'>[field:tag /]</a> {/dede:tag}
2. 最新TAG标签调用
{dede:tag row='30' sort='new'} <a href='[field:link/]'>[field:highlight/]([field:result/])</a> {/dede:tag}
3. 当月热门TAG标签调用
{dede:tag row='30' sort='month'} <a href='[field:link/]'>[field:tagname/]([field:result/])</a> {/dede:tag}
4. 随机TAG标签调用
{dede:tag row='60' sort='rand'} <a href='[field:link/]'>[field:highlight/]([field:result/])</a> {/dede:tag}
5. 采集热门Tags,刷新一次变换一次
模板代码:
{dede:tag row='10' sort='month' } <a href='[field:link/]'>[field:tagname/] </a> {/dede:tag} <script language="javascript"> <! var tag_a=document.getElementsByTagName("a"); for( i in tag_a){ var offset=6; var num=4; if(tag_a[i].className=="tag"){ var rnd=Math.ceil((num+offset)*Math.random()); if(rnd>offset){ tag_a[i].className="tag"+(rndoffset); } } } //> </script> CSS代码: .tag1 { color:#339900;fontweight:bold;} .tag2 { color:#e65730;} .tag3 { color:#00b9da;} .tag4 { color:#FE3981;fontweight:bold;fontsize:14px;}
FAQs
问题1:如何在文章页调用TAG标签?
答:在文章页调用TAG标签可以使用以下代码:
{dede:tag table='dede_search_keywords' sort='keyword' row='2' if=''} <a href='[field:link/]' target=_blank>[field:tag /]</a> {/dede:tag} 或 {dede:field name='keywords' runphp='yes' } if(!empty(@me)){ $kws = explode(' ',@me); @me = ""; foreach($kws as $k){ @me .= "<a href='/tag.php?/$k/'>$k</a> "; } @me= str_replace('+', ' ',trim(@me)); } {/dede:field}
问题2:如何在列表页调用TAG标签?
答:在列表页调用TAG标签可以通过以下两种方法实现:
dedecms5.7版本:找到includehelpersarchive.helper.php文件,并在底部增加:
function GetTags_list($aid) { global $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; }
然后在列表需要调用tag标签的位置添加:
[field:id function=GetTags_list(@me)/]
dedecms5.6版本:直接在模板需要的位置加入以下代码即可:
[field:id runphp=yes] $tsql = new DedeSql(false); $tags = ”; $tsql>SetQuery(“Select i.tag From dede_taglist t left join dede_tagindex i on i.id=t.tid where t.aid=’@me’”); $tsql>Execute(‘t’); while($row = $tsql>GetArray(‘t’,MYSQL_ASSOC)){ $tags .= “<a href=’/tag.php?/”.urlencode($row['tag']).”‘>”.$row['tag'].”</a>”; } @me=$tags; [/field:id]
<?php // 步骤2: 引入DedeCMS的核心文件 require_once dirname(__FILE__).'/include/common.inc.php'; // 步骤3: 获取当前页面的内容模型ID $channelid = $dsql>GetOne("SELECT channelid FROM#@__archives WHERE aid={$_GET['aid']}"); // 步骤4: 根据内容模型ID获取当前页面的tag标签 $tags = $dsql>GetOne("SELECT tag FROM#@__channeltype WHERE id=$channelid"); // 步骤5: 将获取到的tag标签输出 if ($tags) { echo "当前页面的标签为:$tags"; } else { echo "当前页面没有标签信息。"; } ?>
步骤 | 代码/描述 |
1 | 确保你的DedeCMS网站已正确安装并配置。 |
2 | 在页面的PHP文件中,引入DedeCMS的核心文件。 |
3 | 获取当前页面的内容模型ID。 |
4 | 根据内容模型ID获取当前页面的tag标签。 |
5 | 将获取到的tag标签输出或处理。 |
上述代码中使用了$_GET['aid']来获取当前页面的文章ID,你需要根据实际情况调整这部分代码,确保你的数据库表名与代码中的表名一致,或者根据实际情况修改表名。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/344100.html