在ZBlogPHP中,想要獲取隨機文章,很多人會用下面這樣的代碼:
{php}
$order = array('rand()'=>'');
$where = array(array('=','log_Status','0'));
$array = $zbp->GetArticleList(array('*'),$where,$order,array(10),'');
{/php}
{foreach $array as $related}<li><a href="{$related.Url}">{$related.Title}</a></li>{/foreach}然而這并不是一個好的方法,因為如果你網站的文章數達到一定的數量之后,那么這段代碼將直接讓你的網站面臨崩潰的風險!因為它太占用服務器資源了!這也是為什么ZBlog官方不建議大家使用隨機文章模塊的一個原因!
而現在有了一個很好的解決方案,我們直接放棄使用上述中的代碼,而采用以下的代碼來獲取隨機文章便可:
$count = 10; //隨機文章數量
$articles = $zbp->GetArticleList('*',null,array(mt_rand(0,1)?'log_ViewNums':'log_PostTime'=>mt_rand(0,1)?'DESC':'ASC'),100);//這里的100是獲取的文章是數量,可根據你要獲取的隨機文章數量來決定這個值的大小
shuffle($articles);
$posts = count($articles) > $count ? array_chunk($articles,$count)[0] : $articles;
foreach ($posts as $post){
echo $post->Title;
}這段代碼的含義就是隨機使用文章時間或者文章訪問量排序,獲取100篇文章,然后打亂再獲取。
注釋:本文中第二種方法來自:https://kfuu.cn/zblogjiaocheng/27.html
皖公網安備 34162202000270號