首先拿底部菜单做个举例吧,底部菜单设置后,一般情况所有界面都是一样的。要想某些页面不一样,比如论坛详情页或者是商品详情页不一样的话,就需要在相应的模板中单独的添加底部菜单碎片,如下图所示。 ![](https://img.kancloud.cn/75/6b/756b363bb41ea5e207c44ea42fa338fe_1771x1020.png) 上面图中CMS的内容页就特意单独的加上了底部菜单碎片`index_style/default/index/footmenu` 加了之后,就需要把系统布局的底部菜单碎片清空掉,通过这个代码实现的 `{block name="body_Footcont"} {/block}` 另外,也可以通过复制系统布局模板底部菜单那个碎片过来 ~~~ {block name="body_Footcont"} {qb:hy name="wap_layout_002" where="index_style/default/index/footmenu" val="datas" type="labelmodel"} {$datas} {/qb:hy} {/block} ~~~ 复制过来之后,必须要把 `wap_layout_002`改一下名字,因为标签不允许出现雷同的标签名,否则会冲突导致不生效。 通过上面的办法,就可以实现当前的页面可以重新定义底部菜单。 > 再次强调,标签中的名字是不能雷同的,否则就会冲突不生效,但qb:tag 标签与 qb:hy标签的名字有雷同就没问题,因为他们是独立的。qb:hy 可以用在圈子标签设置,qb:tag不能用于圈子标签设置。 >碎片的固定格式如下: ~~~ {qb:hy name="标签名" where="碎片路径" val="datas" type="labelmodel"} {$datas} {/qb:hy} ~~~ 上面添加碎片标签的话,就只能使用 `qb:hy` 大部分时候, `qb:hy`可以替换`qb:tag`使用 但某些特殊场合,比如不同的模板碎片,想要同样的设置参数的时候,就可以在不同的碎片模板里边使用 `qb:tag` 可以达到调用相同的内容,如下图所示 ![](https://img.kancloud.cn/4e/83/4e838826198dce267fb27dff21c42ecb_1820x852.png) 通过上面的例子,大家可以发现对于`qb:tag`标签来说,即使在不同的模板里边,只要标签名相同,他设置的内容也是一样的。有些场合就想要实现这样的效果。 对于底部菜单来说,同样一个碎片模板`\template\index_style\default\index\footmenu.htm` 在不同的页面里边被当作碎片引用的时候,他的设置参数却不一样,那里因为他里边用的是 `qb:hy` 标签,如下图所示 ![](https://img.kancloud.cn/da/75/da755c5bd40784bcd9332e8cf2266e37_1245x1013.png) ----- 大家可以再对比看看底部菜单的碎片设置 ----- ![](https://img.kancloud.cn/55/98/55985b32d31718fdebef201262c19f47_1755x642.png) 最后做个总结 qb:tag是为了满足不同模板里边,有时候就想调用相同的设置, 只要设置标签名一样,就可以实现. 而qb:hy就不能实现这个功能 qb:hy 却可以实现,同样一个碎片,比如底部菜单, 可以被不同的页面以碎片的形式调用,却可以设置不同的内容 所以这就是关键的区别之外.