DEDECMS在其它页面调用单页文章内容并过滤HTML代码的方法
DEDECMS织梦的单页文章是建设网站一种非常高效的方式,非常方便快捷。不过有时候我们需要在首页或者列表页面调用某些单页的内容,如首页调用关于我们单页的介绍信息等。织梦DedeCMS怎么实现在除单页以外的页面,调用单页的文章内容呢?
织梦DedeCMS实现其他页面调用单页文章内容
织梦其他页面调用单页文章内容使用SQL标签首先需要做的,就是把SQL语句写出来,调用的SQL语句如下:
{dede:sql sql="SELECT body FROM `dede_sgpage` where aid = 1" } [field:body function="htmlspecialchars(cn_substr(@me,130))"/] {/dede:sql}
sql="SELECT body这里的body就是文章内容字段,FROM `dede_sgpage`这里的dede_sgpage是单页文档数据表,where aid = 1 这里的aid = 1 就是你单页文档所在的id,你需要调用哪个单页文档的内容,就把这个换成所在文档的id就可以了。
以下的语句则是使用织梦的两个函数,对调用的字段数据进行了必要的处理:
[field:body function="htmlspecialchars(cn_substr(@me,130))"/]
field:body 这里的body如上,就是文章的内容,(cn_substr(@me,130) 这里的130就是你准备让内容显示的字数,可以自己调整。
采用上述方法虽然可以成功调用,但是会出现一个问题,就是会把源代码也调用出来。
这个时候可以使用下面这个代码
{dede:sql sql="SELECT body FROM `dede_sgpage` where aid = 1" } [field:body function="htmlspecialchars(cn_substr(Html2text(@me),600))"/] {/dede:sql}
Html2text() 函数是去掉html标签代码。cn_substr(str,750) 函数是截取字符串长度,cn_substr表示截取600个字符换算成汉字就是300个汉字。
这里再做个延伸:如何任意调用数据库中的内容呢?
其实除了上面的例子外,在Dede系统里面,可以自由使用SQL语句来配合织梦标签进行更多的个性化调用。基本参照格式为:
代码如下:
{dede:sql sql="select 字段 From 表名称 where 条件语句"} [field:字段名/] {/dede:sql}
由上面这种基本格式,我们就可以基本转换出一条调用文档列表的调用标签了,代码为:
代码如下:
{dede:sql sql="select * From dede_archives limit 10"} <li>·<a href="/plus/view.php?aid=[field:id/]">[field:title/]</a></li> {/dede:sql}
大家看到了上面的文档链接的底层模板地址的是动态的,那么我们要怎么样来进行转换,让他链接到静态地址呢,这里我们只需要对[field:id/]进行一下转换,转换后的完整代码为:
代码如下:
{dede:sql sql="SELECT * FROM dede_archives limit 10"} <li>·<a href="[field:id runphp='yes'] ]" title="[field:title/]" target="_blank">[field:title function=cn_substr(@me,30,0)/]</a></li> {/dede:sql}