DEDECMS5.3.1 在文章页取得本文的 tags 标签应该用 {dede:field.tags/},但这样的话原程序输出只能取得tags的文字,没有链接。修改为正常的方法是:
把 /include/common.func.php 下的函数:
PHP代码 (展开/隐藏)
- //获得某文档的所有tag
- function GetTags($aid)
- {
- global $dsql;
- $tags = '';
- $query = "Select tag From `#@__taglist` where aid='$aid' ";
- $dsql->Execute('tag',$query);
- while($row = $dsql->GetArray('tag'))
- {
- $tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']);
- }
- return $tags;
- }
改成如下函数:
PHP代码 (展开/隐藏)
- //获得某文档的所有tag
- function GetTags($aid)
- {
- global $dsql;
- $tags = '';
- $query = "Select tag From `#@__taglist` where aid='$aid' ";
- $dsql->Execute('tag',$query);
- while($row = $dsql->GetArray('tag'))
- {
- $tags .= ($tags=='' ? "<a href='/tags.php?/{$row['tag']}' target='_blank'>{$row['tag']}</a>" : ' '."<a href='/tags.php?/{$row['tag']}' target='_blank'>{$row['tag']}</a>");
- }
- return $tags;
- }
这样就能把TAGS带上链接了,并且以空格分开。
如果你要用逗号分隔的话,把上面的 {$row['tag']}</a>" : ' ' 改为 {$row['tag']}</a>" : ', ' 即可。
这样后,文章页调用TAGS是正常了,但造成了另一个问题,就是编辑文章时,原来填了TAG标签的地方出现这种情况:
PHP代码 (展开/隐藏)
- <a href='/tags.php?/关键词' target='_blank'>关键词</a> <a href='/tags.php?/测试' target='_blank'>测试</a> <a href='/tags.php?/哈哈' target='_blank'>哈哈</a>
结果好像我们把程序改得挖东墙补西墙一样了,原程序是编辑页正常(没链接),前台不正常(没链接),改了之后是前台正常(有链接),后台编辑页不正常(也有链接)。
那再给编辑页动动刀子。每个有需要的模型都要改一下。下面以文章模型为例:
打开 /dede/templets/article_edit.htm 找到
PHP代码 (展开/隐藏)
- <?php echo $tags ?>
把它改为:
PHP代码 (展开/隐藏)
- <?php
- $query="SELECT tag FROM #@__taglist WHERE aid = '$aid'";
- $dsql->SetQuery($query);
- $dsql->Execute();
- while($row = $dsql->GetArray())
- {
- echo $row['tag'].",";
- }
- ?>
编辑页显示就正常了,美中不足的地方是最后一个TAG标签后有个逗号,不过不影响正常使用。完工。
相关文章
- 把后台发布文章选择栏目改为下拉菜单的方法(适用dedecms4) (浏览: 11894, 评论: 0)
- dedecms5.3文章页内容关键词自动替换方法 (浏览: 10618, 评论: 4)
- DEDECMS自动更新首页HTML的方法 (浏览: 9696, 评论: 0)
- dedecms在任意页面取得某篇文章内容(可按字数)for 5.3.1 (浏览: 9138, 评论: 4)
- DedeCMS自定义文件名-用拼音或英文标题作为文章页文件名 (浏览: 6969, 评论: 0)
发表评论



