Zblog PHP在1.8版本的時候想要調用多個分類的文章,并且按照自己的需求去排序是很簡單的事情,很多博友也利用這個方法進行最新文章排行、熱門評論文章排行等等操作,現在隨著ZblogPHP版本的升級,已經封裝了數據庫語句,導致直接使用SQL進行查詢會被鄙視,官方的說法是這種方法會加重服務器的負載,執行效率很低。
我之前寫過一個方法,確實很好用,對于不是很熟悉Zblog的博友來說一般看不懂。所以今天本小編直接分享一下具體的操作過程。
下面是一個封裝好的函數,復制代碼粘貼到你正在使用的主題的include.php里面:
代碼如下:function ChenDeXin_GetArticleCategorys($Rows,$CategoryID,$hassubcate){
global $zbp;
$ids = strpos($CategoryID,',') !== false ? explode(',',$CategoryID) : array($CategoryID);
$wherearray=array();
foreach ($ids as $cateid){
if (!$hassubcate) {
$wherearray[]=array('log_CateID',$cateid);
}else{
$wherearray[] = array('log_CateID', $cateid);
foreach ($zbp->categorys[$cateid]->SubCategorys as $subcate) {
$wherearray[] = array('log_CateID', $subcate->ID);
}
}
}
$where=array(
array('array',$wherearray),
array('=','log_Status','0'),
);
$order = array('log_PostTime'=>'DESC');
$articles=? ? $zbp->GetArticleList(array('*'),$where,$order,array($Rows),'');
return $articles;
}
使用方法:{foreach $array=ChenDeXin_GetArticleCategorys(10,'1,2,3',true)? as $related}
{$related.Title}{/foreach}
使用說明:
使用方法中第一行代碼中的四個阿拉伯數字,10代表調用的文章數量,“1,2,3”代表所調用的欄目ID(多個ID之間用,號隔開即可)。
我們還可以修改函數中的“array('log_PostTime'=>'DESC');”其中:
log_PostTime=按照時間排序;
log_CommNums=按照評論數量排序;
log_ViewNums=按照瀏覽數量排序;
就這樣完全可以根據自己的需要玩出不同的花樣來!