花魁直播高品质美女在线视频互动社区 - 花魁直播官方版

 歡迎來到素材無憂網(wǎng),按 + 收藏我們
登錄 注冊 退出 找回密碼

PHPCMS二次開發(fā)多欄目調(diào)用方法

時(shí)間: 2020-09-16 11:10 閱讀: 作者:素材無憂網(wǎng)

如果你的是一個(gè)小型的網(wǎng)站,只有一級分類,不存在子分類,那很簡單,上代碼

PHPCMS單個(gè)欄目調(diào)用方法

{pc:get sql="SELECT * FROM v9_news WHERE catid in(1,3,5) ORDER BY id DESC" num="10"}
{loop $data $v}
<li><a href="{$v[url]}">{$v[title]}</a></li>
{/loop}
{/pc}

這里我調(diào)用了分類ID為1,3,5的最新文章。

但是,如果是一個(gè)稍大一些的網(wǎng)站,有的存在子分類,有的不存在,那該如何調(diào)用呢?

在PHPCMS中只能調(diào)用直接分類下的文章,也就是說如果指定一個(gè)分類ID存在子分類,那么將無法調(diào)出文章。所以我們要做的是如果是直接分類那么直接顯示分類id,如果存在子分類,那么顯示所有子分類id,最后再把他們用逗號(hào)連起來,就實(shí)現(xiàn)了相同的效果。

PHPCMS二次開發(fā)多欄目調(diào)用方法

<?php
$assigncatid=array(23,24,19);
$str =array();
foreach($assigncatid as $row){
$str[]=$CATEGORYS[$row][arrchildid];
}
$finalcatid= implode(',', $str);
?>
{pc:get sql="SELECT * FROM v9_news WHERE catid in($finalcatid) ORDER BY id DESC" num="14"}
{loop $data $v}
<li><a href="{$v[url]}">{$v[title]}</a></li>
{/loop}
{/pc}

這里我選了3個(gè)指定的分類id,其中23,24沒有子欄目,19有很多子欄目。$CATEGORYS[$row][arrchildid] 這一句很重要,如果沒有子分類直接顯示該分類id,如果有子分類,就會(huì)以1,2,3,4,5這種格式顯示所有子分類,數(shù)組中有3個(gè)值,所以foreach后會(huì)形成3個(gè)數(shù)組,分別為 23、24、以及19,43,44 其中43,44為19的子分類id.

把這3組數(shù)據(jù)賦值給一個(gè)數(shù)組,然后在循環(huán)外用逗號(hào)切割成字符串,拼起來就是 23,24,19,43,44 到這里是不是已經(jīng)一目了然了,該實(shí)現(xiàn)的功能都實(shí)現(xiàn)了,enjoy!

網(wǎng)上查了些資料,發(fā)現(xiàn)也有人這樣來獲取子分類ID

{loop subcat(15)  $k $v}
{php $subcatid[] = $k;}
{/loop}
{php $subcatid  = implode(',', $subcatid);}

然后在讀取SQL的條件中這樣寫 WHERE catid in($finalcatid)

其實(shí)個(gè)人覺得這種做法純屬雞肋,要獲取一個(gè)指定欄目下的所有子欄目ID,直接用 $CATEGORYS[$catid][arrchildid]不就好了,其中$catid可以改成指定的父分類ID

版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!

轉(zhuǎn)載請注明: PHPCMS二次開發(fā)多欄目調(diào)用方法

標(biāo)簽:  
相關(guān)文章
推薦文章
模板推薦