1 添加2个自定义函数
在织梦/include/extend.func.php底部 添加以下代码:
//根据文章ID 获取文章的标签 然后根据标签随机获取不是本地址的文章地址 function gettaglink($aid) { global $lit_imglist,$dsql; //思路整理 先根据文章ID 找标签ID 然后根据标签ID 找到不包括自己的文章ID 然后随机获取一个文章ID $dsql->SetQuery("SELECT tid FROM `dede_taglist` WHERE aid = '{$aid}' "); $dsql->Execute(); $ids = ''; while($row = $dsql->GetArray()) { $ids .= ( $ids=='' ? $row['tid'] : ','.$row['tid'] ); } if($ids != '') { $addsql = " WHERE tid IN($ids) and aid!=".$aid; } $dsql->SetQuery("SELECT aid FROM `dede_taglist` {$addsql} "); $dsql->Execute(); $ads = array(); while($row = $dsql->GetArray()) { $ads[]=$row['aid']; } //去重 $ads=array_unique($ads); //随机获取一个 $rand=array_rand($ads); //文章ID $realaid=$ads[$rand]; $artinfo=GetOneArchive($realaid); //文章链接 return $artinfo['arcurl']; } function gettagandlink($aid) { global $lit_imglist,$dsql; //思路整理 先根据文章ID 找标签ID 然后根据标签ID 找到不包括自己的文章ID 然后随机获取一个文章ID $dsql->SetQuery("SELECT tid FROM `dede_taglist` WHERE aid = '{$aid}' "); $dsql->Execute(); $ids = ''; while($row = $dsql->GetArray()) { $ids .= ( $ids=='' ? $row['tid'] : ','.$row['tid'] ); } if($ids != '') { $addsql = " WHERE id IN($ids)"; } $dsql->SetQuery("SELECT * FROM `dede_tagindex` $addsql LIMIT 0,3"); $dsql->Execute(); $res=''; while($row = $dsql->GetArray()) { $tmp[]['tag'] = dede_htmlspecialchars($row['tag']); } foreach($tmp as $k=>&$v) { $link=gettaglink($aid); if($link) { $res .="<a href='".$link."' target=_blank>".$v['tag']."</a>,"; } } return $res; }
2 在织梦文章详情模板/templates/default/article_article.htm 的 {dede:field.body/} 替换为以下代码即可实现织梦文章页的tag标签随机插入到内容中并且标签的链接为其tag标签关联的其他文章链接。