dedecms如何实现仅调用当前栏目内的文章,而不调用当前栏目子目录内的文章
1、打开织梦Dedecms的主界面,直接找到增加顶级栏目并选择跳转。
2、这个时候进入新的对话框,需要根据实际情况设置相关的参数。
3、下一步如果没问题,就点击确定。
4、这样一来等看到对应的结果以后,即可调用指定栏目下的子栏目列表了。
需要加入栏目ID,如:typeid='1,2,3,4,5'
同1
需要加入关键词,如:keyword='关键词'
不存在,只能通过畅言等第三方插件实现。
虽然都给出了答案,但是DEDE这个系统负载能力不是很好,如果文章多了,你建立这么多东西在内容页的话生成速度就极大降低了,建议你把想的这些都变成公共文件然后用静态语言进行调用。例如:<!--#include virtual="/a/thtml" -->(我把服务器开通了SSI功能就能调用shtml htm html文件了。)
比如我们在首页需要调用指定栏目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代码或手工建立每一个页面。
要调用某个栏目的下级栏目名称,参考下面的标签
{dede:channel row='20' type ='son' typeid ='2' } 此处是底层标签 {/dede:channel}
row='20'表示调用20个栏目名称
type ='son'表示调用下级栏目
typeid ='2'表示父栏目id为2
关于底层标签,诸如栏目名称,链接等等就不再赘述了吧
{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:fieldtypename/} 当前栏目名称
{dede:fieldtypelink/} 、 {dede:fieldtypeurl/} 当前栏目地址;
以上模板标签仅栏目页和内容页有效,如果在栏目页,就是当前栏目如果在内容页就是当前内容所属栏目。
0条评论