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