dede怎么dede调用子栏目的文章同级栏目文章

织梦DedeCMS调用二级子栏目或者循环调用多级栏目
织梦dedeCMS调用二级子栏目或者循环调用多级栏目在网站制作过程中经常都会遇到。今天博主以DEDECMS
v5.6版本调用代码作为示范,调用顶级栏目及其下的所有子栏目的代码。进入正题:
{dede:channelartlist typeid='3,3'}
&a href="{dede:field name='typeurl'/}"&{dede:field
name='typename'/}&/a&
{dede:channel type='son' noself='yes'}
&a href="[field:typelink/]"&[field:typename/]&/a&&br
{/dede:channel}
{/dede:channelartlist}
如 果是已经熟悉了dedecms代码朋友我想已经能看懂是什么意思了,但是还是解释一下。{dede:channelartlist
typeid='3,3'} typeid为3的顶级栏目
如果你的顶级栏目为其他,则相应的改之。如果是循环调用很多个顶级目录和子目录怎么办呢?请往下看:
{dede:channelartlist
typeid='3,6‘}&a
href="{dede:field
name='typeurl'/}"&{dede:field
name='typename'/}&/a&
{dede:channel type='son' noself='yes'}
&a href="[field:typelink/]"&[field:typename/]&/a&&br
{/dede:channel}
{/dede:channelartlist}
请看红色部分,意思是调用顶级栏目为3,4,5,6,的顶级栏目了。简单吧!如果有疑问,直接复制代码到模板去不断测试就知道其原理了。
也测试过这两种方式,不过不尽其意:
下面是官方的解释:
【Channel 标记】
功能说明:用于获取栏目列表
适用范围:封面模板、列表模板、文档模板
(1)基本语法
{dede:channel row='' type=''}
自定义样式模板(InnerText)
{/dede:channel}
[1] row='数字' 表示获取记录的条数(通用在某级栏目太多的时候使用,默认是 8)
[2] type = top,sun/son,self
type='top' 表示顶级栏目
type='son' 或 'sun' 表示下级栏目
type='self' 表示同级栏目
其中后两个属性必须在列表模板中使用。
(3)底层模板变量
ID,typename,typedir,typelink(仅表示栏目的网址)
{dede:channel type='top'}
&a href='[field:typelink
/]'&[field:typename/]&/a&
{/dede:channel}
注:在没有指定typeid的情况下,type标记与模板的环境有关,如,模板生成到栏目一,那么type='son'就表示栏目一的所有子类
DEDE商品分类三级如何用递归调用?
目前用了这个,
&&&&&&&&&&&&&&&&&&&&&&&&&&&
{dede:channelartlist cacheid='channelartlist'}
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
href="{dede:field name='typeurl'/}"&{dede:field
name='typename'/}&/a&&/h3&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
{dede:channel type='son' row='10' noself='yes'}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
id='son_[field:id/]'&&a
href='[field:typelink/]'&[field:typename/]&/a&&/li&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
{/dede:channel}
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
{/dede:channelartlist}
是可以循环出来二级分类和二级分类以下的子类(三级分类),但是经过多重测试,这个方法,只适用于站后台只能有一个商品的顶级分类,如果出现两个,调取的值都是一个顶级分类的内容,之前也用过
&&&&&&&&&&&&&&&&&&&&&&&&&&&
{dede:channelartlist typeid=‘2’}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&h3&&a
href="{dede:field name='typeurl'/}"&{dede:field
name='typename'/}&/a&&/h3&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
{dede:channel type='son' row='10' noself='yes'}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
id='son_[field:id/]'&&a
href='[field:typelink/]'&[field:typename/]&/a&&/li&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&{/dede:channel}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&{/dede:channelartlist}
{dede:channelartlist&&cacheid='channelsonlist'
&&&&&&&&&&&&&&&&&li&&span&&img
src="images/about_left_y.jpg" width="8" height="8"
&&&&&&&&&&&&&&&&&&
href="{dede:field name='typeurl'/}"&{dede:field
name='typename'/}&/a&&/div&
&&&&&&&&&&&&&&&&&ul&
&&&&&&&&&&&&&&&&&&{dede:channel
type='sun' row='10' noself='yes'}
&&&&&&&&&&&&&&&&&&&&&li&&a
href="[field:typeurl/]"&[field:typename/]&/a&&/li&
&&&&&&&&&&&&&&&&&&{/dede:channel}
&&&&&&&&&&&&&&&&&/ul&
&&&&&&&&&&&&&&&&&/li&
&&&&&&&&&&&&{/dede:channelartlist}
以上是我循环二级栏目及三级栏目所用的标签,
要是二级栏目下有三级栏目,就能正常输入,要是二级栏目没有三级栏目,就把同及栏目输出了
如下图所示
{dede:field name='typename'/}用来提取当前栏目名称.
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。织梦dedecms同时调用一级分类、二级分类
一、如何才能将DEDECMS分类信息中所有的栏目,包括一级和二级全部都调用出来呢。其实,通过的
channelartilist 标签是完全可以实现的,下面就是调用代码:
{dede:channelartlist&typeid='1,10,24,35,51,56'&}&//手动把一级栏目的id写好
{dede:type}[field:typename/]{/dede:type}
{dede:channel&type='son'&noself='yes'}
[field:typename/]
{/dede:channel}
{/dede:channelartlist}
通过上面的可以调用出所有的栏目
二。直接上图:
调用方法:
{dede:channelartlist&typeid='2'}
{dede:field&name='typename'/}
{dede:channel&type='son'&noself='yes'}
[field:typename/]
{/dede:channel}
{/dede:channelartlist}
此方法直接使用会出现一个问题:当其中一个分类没有子分类的时候,会在其子分类的位置显示出所有的一级分类
解决办法:去掉include/taglib/channel.lib.php中以下内容即可解决
//如果用子栏目模式,当没有子栏目时显示同级栏目
if($type=='son'&&&&$reid!=0&&&&$totalRow==0)
$&=&"SELECT&id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
FROM&`#@__arctype`&WHERE&reid='$reid'&And&ishidden&&1&order&by&sortrank&asc&limit&0,&$&";
$dsql-&SetQuery($sql);
$dsql-&Execute();
—————————————————————————————————————————————————————————以下方法在5.6版本适用,后来升级到5.7V后发现用不了,具体不知道啥原因,有兴趣的朋友可以研究一下:
在\include\channelunit.func.php文件底部添加如下代码:
//树形栏目补充,获取二级,san级,四级栏目列表
function&getProductTree($id)
$linkList&=&"";
$dsql&=&new&DedeSql(false);
$dsql-&SetQuery("select&ID,typedir,typename,isdefault&from&#@__arctype&where&reID&=&'$typeid'&order&by&sortrank");
$dsql-&Execute();
while($row=$dsql-&GetObject())
$typelink&=&GetTypeUrl($row-&id,MfTypedir($row-&typedir),$row-&isdefault,$row-&defaultname,$row-&ispart,$row-&namerule2,$row-&moresite,$row-&siteurl,$row-&sitepath);
$linkList&.=&"\n\"&".$row-&typename."\n\n";
$linkList&.=&getSonClass($row-&ID);
$dsql-&Close();
return&$linkL
//获得小类栏目链接
function&getSonClass($parentid)
$linkList&=&"";
$dsql&=&new&DedeSql(false);
$dsql-&SetQuery("Select&ID,typedir,typename,isdefault&From&#@__arctype&where&reID='$parentid'&order&by&sortrank");
$dsql-&Execute($parentid);
while($row=$dsql-&GetObject($parentid))
$link&=&GetTypeUrl($row-&id,MfTypedir($row-&typedir),$row-&isdefault,$row-&defaultname,$row-&ispart,$row-&namerule2,$row-&moresite,$row-&siteurl,$row-&sitepath);
$linkList&.=&"".$row-&typename."\n";
$linkList&.=&getSonClass2($row-&ID);
return&$linkL
function&getSonClass2($parentid)
$linkList&=&"";
$dsql&=&new&DedeSql(false);
$dsql-&SetQuery("Select&ID,typedir,typename,isdefault&From&#@__arctype&where&reID='$parentid'&order&by&sortrank");
$dsql-&Execute($parentid);
while($row=$dsql-&GetObject($parentid))
$typelink&=&GetTypeUrl($row-&id,MfTypedir($row-&typedir),$row-&isdefault,$row-&defaultname,$row-&ispart,$row-&namerule2,$row-&moresite,$row-&siteurl,$row-&sitepath);
$linkList&.=&"".$row-&typename."\n";
$linkList&.=&getSonClass3($row-&ID);
return&$linkL
function&getSonClass3($parentid)
$linkList&=&"";
$dsql&=&new&DedeSql(false);
$dsql-&SetQuery("Select&ID,typedir,typename,isdefault&From&#@__arctype&where&reID='$parentid'&order&by&sortrank");
$dsql-&Execute($parentid);
while($row=$dsql-&GetObject($parentid))
$typelink&=&GetTypeUrl($row-&id,MfTypedir($row-&typedir),$row-&isdefault,$row-&defaultname,$row-&ispart,$row-&namerule2,$row-&moresite,$row-&siteurl,$row-&sitepath);
$linkList&.=&"".$row-&typename."\n";
return&$linkL
{dede:channel&function=’getProductTree(2)’}{/dede:channel}
调用即可。这里getProductTree(2)中的&2&是产品展示的栏目ID。如果你的是其他的,请作相应修改。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。dede怎么调用同级栏目文章_百度知道
dede怎么调用同级栏目文章
题同级栏目文章同级栏目
实现直接调用指定栏目文章啊想呢
其他类似问题
为您推荐:
召唤师峡谷的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁织梦(dedecms)循环调用多级子栏目如二级栏目下三级栏目
本文是关于织梦DedeCMS调用多级子栏目的,拿来分享下。 后台已经建好栏目,对于产品展示栏 栏目导航如下图所示: &代码如下: {dede:channelartlist cacheid='channelsonlist' typeid=3 } &dd& &dl& &dt&&a href="{dede:field name='typeurl'/}"&{dede:field name='typename'/}&/a&&/dt& &dd& &ul& {dede:channel type='sun' row='10' noself='yes'} &li&&&&a href="[field:typeurl/]"&[field:typename/]&/a&&/li& {/dede:channel} &/ul& &/dd& &/dl& &/dd& {/dede:channelartlist} 如果用以上代码的话,前台页面的显示将不太令人满意。对于有子类的二级目录,将会正确显示其子类,那些没有子类的 将显示其同类列表。如下图所示。 &这样的结果着实另人费解。 接下来看第二种代码写法如下: 代码如下: {dede:channelartlist typeid=3 } &dd& &dl& &dt&&a href="{dede:field name='typeurl'/}"&{dede:field name='typename'/}&/a&&/dt& &dd& &ul& {dede:sql sql='Select * from `lzz_arctype` where reid=~id~ ORDER BY id'} &li&&&&a href="[field:typedir function="cn_substr(@me,200,9) " /]"&[field:typename/]&/a&&/li& {/dede:sql} &/ul& &/dd& &/dl& &/dd& {/dede:channelartlist} 注:lzz_arctype这个是因为我把表名前缀改为lzz_了。 结果呢,当然应该会是你想要的了,如下图。
顶一下(0) 踩一下(0)
热门标签:织梦dedecms问题,下级栏目调用其他同级栏目下的文章目录,有图,各位大神求解答!_百度知道
织梦dedecms问题,下级栏目调用其他同级栏目下的文章目录,有图,各位大神求解答!
能够解答详细点~满意采纳追加
您的回答被采纳后将获得:
系统奖励20(财富值+经验值)+难题奖励10(财富值+经验值)+提问者悬赏40(财富值+经验值)
我有更好的答案
{dede:channelartlist
type='sun' typeid='6'}&dl&&a href=&{dede:field name='typeurl'/}&title=&[field:fulltitle /]&&&h1&[{dede:field name='typename'/}]&/h1&&/a&
{dede:arclist titlelen='42' row='2'}
&dd&&ahref=&[field:arcurl /]& title=&[field:fulltitle/]&&[field:title /]&/a&&/dd&
{/dede:arclist}&/dl&
{/dede:channelartlist}
其他类似问题
为您推荐:
dedecms的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 dede调用子栏目的文章 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信