宏博cms模板里如何调用某个栏目(分类)的文章?
问题:我希望在文章显示页,调用栏目ID为16的栏目的最新文章,如何实现?
解答:将如下代码添加到模板源代码中相应的位置即可。
<{php}>
include("config/type_16.inc.php");
$this->assign('my_variable_name',$TYPE_DATA['new_article']);
<{/php}><{foreach name="my_foreach_name" item="curr_section" from=$my_variable_name}>
<{if $smarty.foreach.my_foreach_name.iteration <= 3}>
<{$smarty.foreach.my_foreach_name.iteration}>.
<a href="<{$curr_section.url}>"><{$curr_section.title}></a><br>
<{/if}>
<{/foreach}>代码解释:
- 这里先将栏目的文章信息用include包含到模板里,再用foreach 循环显示出来。
- include("config/type_16.inc.php"); 中的16,就是你要调用的栏目ID
- $this->assign('my_variable_name',$TYPE_DATA['new_article']); 其中my_variable_name为你自己设置的一个变量名,new_article表示读取该栏目的最新文章,hot_article表示该栏目的热门文章,commend_article表示该栏目的推荐文章。
- <{foreach name="my_foreach_name" item="curr_section" from=$my_variable_name}> 其中my_foreach_name是你给这个循环设置的变量名,在接下来的代码中需要用到。$my_variable_name 就是你之前设置的变量名称,这里必须保持一致。
- item="curr_section" 这个curr_section也可以设置为其他的名称,但在接下来的所有代码中,必须保证都是一样的名称。
- <{if $smarty.foreach.my_foreach_name.iteration <= 3}> 中的数字3表示只显示3篇文章。
- <a href="<{$curr_section.url}>"><{$curr_section.title}></a><br> 这里的 url,title 等等参数的含义和“最新文章 变量:new_article ”一样,详情在这里的查看:http://www.hbcms.com/cms/5d/208.html
应用: 如此以来,你就可以在各个模板的任何位置,随意调用想要的栏目文章了。
注意:最新文章 变量:new_article 热门文章 变量:hot_article 推荐文章 变量:commend_article 的最大文章数目默认是20篇,如果你需要获取更多的文章,需要在后台“系统配置管理”,“系统变量”里,将变量 admin.cache_article_num 的数值调大,如设置成30。
性能:大可放心。因为通过上述方法调用的文章,全部是在配置文件中缓存起来的。不需要查询数据库,因此,对性能和生成静态页的速度几乎没有影响。