php,{dede:field name='positionid' id='1'/},{dede:sql sql='SELECT tid,tag FROM #@__tag WHERE typeid=1 AND status=1'},[field:tid function="GetTag('',@me)"/],{/dede:sql},
“,,3. 保存模板文件并更新缓存。织梦dedecms按栏目调用tag标签的方法
修改系统文件
1、打开include/taglib/目录下的 tag.lib.php 文件:找到以下代码段,并在适当位置插入标注部分代码。
01 if($getall==0 && isset($refObj>Fields['tags']) && !empty($refObj>Fields['aid'])) {
02 $dsql>SetQuery("Select tid Fromddmx_taglist
where aid = '{$refObj>Fields['aid']}' ");
03 $dsql>Execute();
04 $ids = '';
05 while($row = $dsql>GetArray()) {
06 $ids .= ( $ids=='' ? $row['tid'] : ','.$row['tid'] );
07 }
08 if($ids != '') {
09 $addsql = " where id in($ids) ";
10 }
11 if($addsql=='') return '';
12 } else if($getall==2) {
13 $addsql = " where typeid='{$refObj>Fields['typeid']}' ";
14 } else {
15 if(!empty($typeid)) {
16 $addsql = " where typeid='$typeid' ";
17 }
修改模板文件
在模板文件中使用以下代码来调用当前栏目的TAG标签:
{dede:tag sort='hot' getall='2'} <a href='[field:link/]'>[field:tag /]</a> {/dede:tag}
参数说明
row=’30’:调用条数为30条。
sort=’new’:排序方式,可选值有month(月)、rand(随机)、week(周)。
getall=’2′:获取类型,0为当前内容页TAG标记,1为获取全部TAG标记,2为获取当前栏目的TAG标记。
常见问题与解答
1、问题1:如何确保调用的TAG标签是当前栏目的?
解答1:通过设置getall='2'
可以确保只获取当前栏目的TAG标签,如果需要进一步精确控制,可以在SQL查询语句中添加条件限制。
2、问题2:如何在首页和列表页分别调用不同的TAG标签?
解答2:在首页可以使用getall='0'
来获取当前内容页的TAG标签,而在列表页则可以使用getall='2'
来获取当前栏目的TAG标签,具体实现可以参考上述代码示例。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1114265.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复