1、做一个伪静态指向默认的关键词查询方法lists(),让网址变得更短
#tag/guanjianci/ RewriteRule ^tag/(.*)/$ index.php?m=content&c=tag&a=lists&tag=$1
2、/phpcms/modules/content/tag.php 的默认方法记得细调下细节 ,$tag = safe_replace(addslashes($_GET[‘tag’]));对传入的字符串起到了安全过滤的效果
public function lists() { $tag = safe_replace(addslashes($_GET['tag'])); .... $res = $this->db->get_one(array('id'=>$contentid), 'title, description, url, inputtime, style');//改成下面的内容 $res = $this->db->get_one(array('id'=>$contentid), 'keywords,catid,title, description, url, thumb, inputtime, style'); .... }
3、/phpcms/templates/default/content/tag_list.html模板中调用获取到的数据即可
比如: 1) 查询到的总条数:{$total} 2) 关键词:{$tag} 3) 循环上面调用的数据: {loop $datas $r} {/loop} 4) 循环文章里所有的关键词: {if $r[keywords] != ""} <span class="am-hide-sm-only">| 标签: {php $keywords = str_replace(' ', ',', strip_tags($r[keywords]))} {php $keywords = explode(',',$keywords)} {loop $keywords $keyword} <a href="{APP_PATH}tag/{urlencode($keyword)}">{$keyword}</a> {/loop} </span> {/if}
最后访问标签列表链接https://www.taiyoubang.com/tag/seo/效果是这样的:

4、标签列表的查询语句
{pc:get sql="SELECT count(tagid) as num,A.keyword,B.tagid FROM `v9_keyword` as A,`v9_keyword_data` as B where A.id = B.tagid and A.keyword != '' GROUP BY `tagid` order by num desc" num="10"} {loop $data $r} <li> <a href="{APP_PATH}tag/{urlencode($r[keyword])}/" class="am-list-item-hd">{$r[keyword]}({$r[num]})</a> </li> {/loop} {/pc}
标签列表显示效果:

5、当前文章的相关关键词,urlencode函数用来对中文字符串转码
{loop $keywords $keyword} <a href="{APP_PATH}tag/{urlencode($keyword)}/">{$keyword}</a> {/loop}
6、查询相关文章的写法
{php $keywordss = implode(" ",$keywords);} {pc:content action="relation" relation="$relation" catid="$catid" num="6" keywords="$keywordss" id="$id"} {if !empty($data)} {loop $data $r} //调用的内容 {/loop} {/if} {/pc}
