dedecms如何实现仅调用当前栏目内的文章,而不调用当前栏目子目录内的文章
{dede:field name='typeid' runphp='yes'}
global $dsql;
/获取当前栏目id/
$typeid = @me;
$query = "SELECT reid FROM dede_arctype where id = $typeid";
$rs = $dsql->GetOne($query);
$reid = $rs['reid'];//获取到栏目的上级栏目
/获取上级栏目id/
$query2 = "SELECT FROM dede_arctype where id = $reid";
$typerow = $dsql->GetOne($query2);
/输出上级栏目信息/
$typename = $typerow['typename'];
$link = GetTypeUrl($typerow['typeid'],MfTypedir($typerow['typedir']),$typerow['isdefault'],$typerow['defaultname'],$typerow['ispart'],$typerow['namerule2'],$typerow['moresite'],$typerow['siteurl'],$typerow['sitepath']);
@me = "<a href='/{$link}'>$typename</a>";
{/dede:field}
{dede:channel type='son' row='8' currentstyle="<li><a href='~typelink~' class='thisclass'>~typename~</a> </li>"}
<li><a href='[field:typelink/]'>[field:typename/]</a> </li>
{/dede:channel}
参数说明:
typeid = '0' 栏目ID
reid = '0' 上级栏目ID
row = '100' 调用栏目数
type = 'son' son表示下级栏目,self表示同级栏目,top顶级栏目
currentstyle = '' 应用样式
比如我们在首页需要调用指定栏目ID为6的栏目下的文章,而该栏目下有一个ID为12的子栏目,通常我们在首页的调用代码如下:
<ul>
{dede:arclist typeid='8' row='10' col='1' orderby='hot'}
<li><a href='[field:arcurl/]'>[field:shorttitle/]</a></li>
{/dede:arclist}
</ul>
但是调用后,此栏目下的ID为12的子栏目里面的内容也会出现在列表里,如果不想要子栏目的内容出现在列表里很简单,这个在后台就有设置,具体设置如下:
登录织梦管理后台,在“系统基本参数”——“性能选项”——“上级列表是否包含子类内容:”这个选项选择“否”就行了。
当然这个是有前提的,这个只能说是调用列表页,如果你调用的栏目是封面页,那么肯定会取子栏目的数据,如果你调用的是列表页,那么肯定是可以的。
DedeCMS(织梦内容管理系统)是织梦团队开发的一套网站管理系统(CMS)。
这个系统把一个网站的内容(文字,,等等)与网站的组件分离开来,可以将各个页面连接到一起,可以控制页面的显示。通过这个系统,可以方便的管理,发布,维护网站的内容,而不再需要硬性的写HTML代码或手工建立每一个页面。
0条评论