2010-03-22 10:48?來源
首先,需要注意的是,這時(shí)在后臺(tái)自定義標(biāo)簽管理里新建的是一個(gè)函數(shù)標(biāo)簽,標(biāo)簽名稱可以命名為{$MY_隨機(jī)文章}。
查詢語句設(shè)置為:(“top10”中的10是要查詢的文章數(shù),可以自己改,但不建議修改得太大;如果不想按欄目調(diào)用,而是調(diào)用某一個(gè)頻道下的文章,那么可以把ChannelID in ({input(0)}) and ClassID in ({input(1)}) 修改為:ChannelID in ({input(0)}) ,相應(yīng)的,調(diào)用標(biāo)簽就是:{$MY_隨機(jī)文章(頻道ID)}了 ;“DateDiff(\"d\",date(),UpdateTime)<7”中的7是指查詢最近7天的文章,根據(jù)需要修改;)
select top 10 ArticleID,ClassID,Title,UpdateTime from PE_Article where ChannelID in ({input(0)}) and ClassID in ({input(1)}) and DateDiff(\"d\",date(),UpdateTime)<7 and Deleted={$PE_False} and Status=3 Order by right(cstr(Rnd(-int(ArticleID+rnd(-timer())*100)))*1000*Now(),2);
標(biāo)簽內(nèi)容設(shè)置為:
{Loop}{Infobegin}
{$Field(2,Text,44,2,1)}
{Infoend}{/Loop}
其次,在模板里適當(dāng)位置加入{$MY_隨機(jī)文章(頻道ID,欄目ID)}即可進(jìn)行調(diào)用,其中頻道ID、欄目ID可以根據(jù)自己實(shí)際進(jìn)行修改。
需要注意的是,好的效果是在損失性能的前提下實(shí)現(xiàn)的,不比SQL數(shù)據(jù)庫的動(dòng)態(tài)標(biāo)簽,這個(gè)標(biāo)簽的代碼效率很低,雖然標(biāo)簽保證了隨機(jī)性,如果是生成靜態(tài)的,那生成的每個(gè)頁面都不一樣,每次生成也都不一樣。但是虛擬主機(jī)用戶當(dāng)CPU峰值小于5%的時(shí)候,而你又要生成靜態(tài)頁面的話,生成文章超過700篇就有可能造成進(jìn)程當(dāng)機(jī)了。建議在生成大量靜態(tài)頁面的時(shí)候,尋找訪客較少的時(shí)候進(jìn)行,并且一次盡量少生成一些。也可以修改動(dòng)易安裝目錄下的Config.asp文件:
Const MaxPerPage_Create = 10 \'一次生成的數(shù)量,把他改小一些,Const SleepTime = 3 \'生成的間隔時(shí)間,把他改大一些。
編輯: