一、织梦tag标签实现显示多个指定栏目的TAG标签
实例:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<div class="box-body"> <dl class="tags-box clearfix"> <dt>热门</dt> <dd> {dede:tag row='10' sort='month' getall='1' typeid='2,3,4,6'} <a href="[field:link/]" target="_blank">[field:tag/]</a> {/dede:tag} </dd> </dl> <dl class="tags-box clearfix"> <dt>推荐</dt> <dd> {dede:tag row='10' sort='new' getall='1' typeid='2,3,4,6'} <a href="[field:link/]" target="_blank">[field:tag/]</a> {/dede:tag} </dd> </dl> </div> |
修改文件 /include/taglib/tag.lib.php 约第66行
把
0 |
$addsql = " WHERE typeid='$typeid' "; |
改为
0 |
$addsql = " WHERE typeid IN ($typeid) "; |
说明:在模板中调用时保证getall=’1′,并且typeid的值是使用英文逗号隔开的数字串或单个文章ID即可。
二、织梦tag标签实现文章页显示此文章的顶级栏目的所有下级栏目(支持N层栏目)TAG标签
实例:
0 1 2 3 4 5 6 7 8 |
<div class="box-body"> <ul class="clearfix"> {dede:tag row='30' sort='new' getall='3'} <li class="item pull-left"> <a class="btn-item" href='[field:link/]' target="_blank">[field:tag /]</a> </li> {/dede:tag} </ul> </div> |
栏目结构示意:
0 1 2 3 4 5 6 7 8 9 10 11 12 |
1 └─ 2 └─ 3 └─ 4 └─ 5 └─ 6 └─ 7 ---- (文章A是栏目8下的文章,使用TAG标签) └─ 8 9 └─ 10 └─ 11 └─ 12 └─ 13 |
修改文件 /include/taglib/tag.lib.php 约第62行的 else 前增加
0 1 2 3 4 5 6 7 8 9 10 11 12 |
else if($getall==3) { /* 显示此文章的顶级栏目下的所有下级栏目的TAG,支持N层栏目 */ // 通过文章直接的上一级栏目ID获取此栏目的所有上级栏目id // 依上面示意栏目结构,得到的 $rids 字符串值为 7,6,1 $rids = GetTopids($refObj->Fields['typeid']); $rid_arr = explode(',', $rids); $rids_count = count($rid_arr); //获得某id的所有下级id // 依上面示意栏目结构,得到的 $rids 字符串值为 1,2,3,4,5,6,7,8 $rids = GetSonIds($rid_arr[$rids_count-1]); $addsql = " WHERE typeid IN ($rids) "; } |
说明:在模板中使用TAG标签时,注意getall的值一定为3,即可。
注意:第二种方法只在文章页面测试可用,如首页、频道页、列表页等都未曾测试过。