{dede:tag row='5' sort='new' getall='0'} <a href='[field:link/]'>[field:tag /]</a>{/dede:tag}
DEDEBIZ欄目列表頁調(diào)用當(dāng)前文章的TAG標(biāo)簽調(diào)用代碼:
[field:id function='obtaintags(@me,3)'/]
3表示調(diào)用文檔3個(gè)標(biāo)簽,效果如下:
最新V6.5.6版本里面,官方把擴(kuò)展里面的內(nèi)容全部清空了。如果列表頁需要調(diào)用 TAG標(biāo)簽,可以把下面代碼添加到extend.func.php文件里面就行了。
//標(biāo)簽調(diào)用[field:id function='obtaintags(@me,3)'/]3表示調(diào)用文檔3個(gè)標(biāo)簽
function obtaintags($aid, $num = 3)
{
global $dsql, $cfg_cmspath, $cfg_rewrite;
$newtag = '';
$query = "SELECT * FROM `#@__taglist` WHERE aid='$aid' LIMIT $num";
$dsql->Execute('tag', $query);
while ($row = $dsql->GetArray('tag')) {
if ($cfg_rewrite == 'Y') {
$link = $cfg_cmspath."/tags/{$row['tid']}";
} else {
$link = $cfg_cmspath."/apps/tags.php?/{$row['tid']}";
}
$newtag .= ($newtag == '' ? "<a href=\"{$link}\">{$row['tag']}</a>" : "、<a href=\"{$link}\">{$row['tag']}</a>");
}
return $newtag;
}
END
]]>下面我們就來把他去掉,美化一下。打開/system/taglib/tag.lib.php,大約58行。
把/apps/tags.php?/修改為:/apps/,如果你不用偽靜態(tài),就用動(dòng)態(tài)的地址,你的標(biāo)簽URL地址就是/apps/標(biāo)簽ID。我用的是偽靜態(tài)的,為了更直觀,一看目錄就是TAG,便于SEO收錄。就把它修改成/tags/ ,這樣的話,標(biāo)簽的URL地址就是/tags/標(biāo)簽ID,我這里修改后如下圖所示:
顯示效果就是:
TAG所用偽靜態(tài)規(guī)則(Nginx環(huán)境):
#TAG標(biāo)簽
rewrite ^/tags\.html$ /apps/tags.php;
rewrite ^/tags/(.*)(?:(\?.*))* /apps/tags.php?\/$1;
rewrite ^/tags/(.*)\/(?:(\?.*))* /apps/tags.php?\/$1\/;
rewrite ^/tags/(.*)\/([0-9])(?:(\?.*))* /apps/tags.php?\/$1\/$2;
rewrite ^/tags/(.*)\/([0-9])\/(?:(\?.*))* /apps/tags.php?\/$1\/$2\/;
上面只是文件頁面的TAG標(biāo)簽URL,列表頁的標(biāo)簽也需要修改,打開/system/extend.func.php文件,在33行,按照需要修改就行了。
保存。完工。
]]>1、后臺(tái)-系統(tǒng)-核心設(shè)置-關(guān)鍵字替換,選擇【是】
2、后臺(tái)-系統(tǒng)-其他選項(xiàng)-關(guān)鍵詞替換次數(shù),填【1】或者【0】
1:表示文檔內(nèi)容里有多個(gè)關(guān)鍵詞,只讓1個(gè)是內(nèi)鏈
0:表示文檔內(nèi)容里有多個(gè)關(guān)鍵詞,都是內(nèi)鏈
根據(jù)自己的需要填
3、打開 /include/arc.archives.class.php 找到,大概在1187行至1241行,整個(gè)函數(shù)
function ReplaceKeyword($kw,&$body)
{
...中間代碼省略
}
整個(gè)修改為:
function ReplaceKeyword($kw,&$body)
{
global $cfg_replace_num;
$search = "/(alt\s*=\s*|title\s*=\s*|src\s*=\s*)[\"|\'](.+?)[\"|\']/is";
$body = preg_replace_callback($search, array('Archives', '_base64_encode'), $body);
$addsql = '';
if(isset($this->Fields['tags']) && !empty($this->Fields['aid']))
{
$this->dsql->SetQuery("SELECT tid FROM `#@__taglist` WHERE aid = '{$this->Fields['aid']}' ");
$this->dsql->Execute();
$ids = '';
while($row = $this->dsql->GetArray())
{
$ids .= ( $ids=='' ? $row['tid'] : ','.$row['tid'] );
}
if($ids != '')
{
$addsql = " WHERE id IN($ids) ";
}
if($addsql=='') return $body;
}
$query = "SELECT * FROM `#@__tagindex` $addsql ORDER BY addtime DESC";
$this->dsql->SetQuery($query);
$this->dsql->Execute();
$linkdatas = array();
while($row = $this->dsql->GetArray())
{
$row['keyword'] = $row['tag'];
$row['rpurl'] = $cfg_cmsurl."/tags.php?/".urlencode($row['tag'])."/";
$linkdatas[] = $row;
}
if($linkdatas) {
$word = $replacement = array();
foreach($linkdatas as $v) {
$word0[] = "/<a[^>]*>{$v['keyword']}<\/a>/is";
$word1[] = '/'.$v['keyword'].'/is';
$word2[] = $v['keyword'];
$replacement[] = '<a href="'.$v['rpurl'].'" target="_blank">'.$v['keyword'].'</a>';
}
if($cfg_replace_num) {
$body = preg_replace($word0, $word2, $body, $cfg_replace_num);
$body = preg_replace($word1, $replacement, $body, $cfg_replace_num);
} else {
$body = str_replace($word2, $replacement, $body);
}
}
$body = preg_replace_callback($search, array('Archives', '_base64_decode'), $body);
return $body;
}
function _base64_encode($matches) {
return $matches[1]."\"".base64_encode($matches[2])."\"";
}
function _base64_decode($matches) {
return $matches[1]."\"".base64_decode($matches[2])."\"";
}
如圖
4、完成,動(dòng)態(tài)的直接看效果,靜態(tài)的記得重新生成文檔看效果
注意:這個(gè)TAGE鏈接地址是動(dòng)態(tài)的,效果如下
https://www.xiangyangcity.com/tags.php?/襄陽城/
如果你的如果你的TAG鏈接是這種的
https://www.xiangyangcity.com/tags/襄陽城/
那你就得把上面代碼里面的?刪除掉。如下面的紅色部分
$row['rpurl'] = $cfg_cmsurl."/tags.php?/".urlencode($row['tag'])."/";
本文來源:https://www.dedehtml.com/notes/dede-tag-keyword.html
]]>