這是什么意思呢?我們知道在織夢(mèng)系統(tǒng)里面標(biāo)簽調(diào)用時(shí),最歷害的二個(gè)標(biāo)簽就是loop和sql了,這兩個(gè)可以調(diào)用織夢(mèng)系統(tǒng)里面幾乎任意表中的數(shù)據(jù)。
下面將以loop標(biāo)簽為例子:
例如:
{dede:loop table='dede_archives' orderway='asc' row='1' if='shorttitle=1'}
<h1><a href='[field:arcurl/]'>[field:title/]</a></h1>
{/dede:loop}
上面這個(gè)標(biāo)簽調(diào)用一條,條件為shorttitle=1的文章內(nèi)容,是在表dede_archives里面調(diào)用的。
但是,調(diào)用出來的結(jié)果是:<h1><a href=''>織夢(mèng)教程網(wǎng)</a></h1>
也就是說無論用loop 還是用sql調(diào)出來的鏈接都是空的,如果這樣的話,這兩個(gè)標(biāo)簽就沒有意義了。
所以,織夢(mèng)官方這樣給出這樣的標(biāo)簽調(diào)用:
{dede:loop table='dede_archives' orderway='asc' row='1' if='shorttitle=1'}
<h1><a href='/plus/view.php?aid=[field:id/]' target='_blank'>[field:title/]</a><br></h1>
{/dede:loop}
結(jié)果是:<h1><a href='/plus/view.php?aid=1'>織夢(mèng)教程網(wǎng)</a></h1>
我們不希望在首頁調(diào)用出來的內(nèi)容是動(dòng)態(tài)(動(dòng)態(tài)鏈接是/plus/view.php?aid=1)的,這樣可能對(duì)seo不好,因?yàn)椋嗔诉@個(gè)鏈接后,同樣一篇文章可能讓百度收錄二次,可能讓百度認(rèn)為是我們作弊,懂seo都知道。
現(xiàn)在我們的目標(biāo)是把底層模板[field:arcul/]的調(diào)用,跟在標(biāo)簽{dede:arclist}調(diào)用出來一樣,即調(diào)用出來的是靜態(tài)的。
例如,<h1><a href='www.dede58.com/php/1.html'>織夢(mèng)教程網(wǎng)</a></h1>
經(jīng)過我的研究,既然是用loop就改他的標(biāo)簽源碼文件: loop.lib.php
在這個(gè)文件里面找到這樣一行代碼:$dsql->SetQuery("SELECT * FROM $tablename $ifcase $sort LIMIT 0,$row");
注釋掉(或刪除掉)
然后,加上下面這行代碼:
$dsql->SetQuery("SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM `$tablename` arc LEFT JOIN `dede_arctype` tp on arc.typeid=tp.id $ifcase $sort LIMIT 0,$row"); |
然后,
在代碼:
while($row = $dsql->GetArray())
{
里面加上下面這行代碼:
$row['arcurl'] = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'], $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);
保存!
現(xiàn)在再來使用用標(biāo)簽:
{dede:loop table='dede_archives' orderway='asc' row='1' if='shorttitle=1'}
<h1><a href='[field:arcurl/]'>[field:title/]</a></h1>
{/dede:loop}
結(jié)果是:
<h1><a href='www.dede58.com/php/1.html' >織夢(mèng)教程網(wǎng)</a></h1>
已經(jīng)變成靜態(tài)的了。
如果您想使用{dede:sql}標(biāo)簽里面的[field:arcurl/]也變成靜態(tài)的,處理方法完全一樣,這里不再重復(fù)。