织梦dedecms中首页调用单页内容并过滤html
本文介绍织梦dedecms中首页调用单页文档内容并过滤html的方法。
1、调用的语句
{dede:sql sql="SELECT body FROM`dede_sgpage`where aid=1"}
[field:body function="htmlspecialchars(cn_substr( me,130))"/]
{/dede:sql}https://www.cqxftyyj.com
其中:
{dede:sql sql="SELECT body FROM`dede_sgpage`where aid=1"}
sql=”SELECT body这里的body就是文章内容,FROM`dede_sgpage`这里的dede_sgpage这是单页文档存档的数据表,这是织梦DedeCms 5.6的,其它版本的根据表的名称自己定义,where aid=7″这里的aid=7就是你单页文档所在的id,你需要调用哪个单页文档的内容,就把这个换成所在文档的id就是!
[field:body function="htmlspecialchars(cn_substr( me,130))"/]
field:body这里的body如上,就是文章的内容,(cn_substr( me,130)这里的130就是你准备让内容显示的字数,可以自己调整。
但这样做会有一个问题,就是连html也被截断了。
要过滤它,使用:
{dede:sql sql="SELECT body FROM`dede_sgpage`where aid=1"}
[field:body function="htmlspecialchars(cn_substr(Html2text( me),750))"/]
{/dede:sql}
Html2text()函数是去掉html标签代码。
cn_substr(str,80)函数是截取字符串长度。
如何任意调用数据库中的内容呢?
先举个例子:dedecms后台有个频道模型里面有添加单页文档的功能,但如何在首页调用单页文档的内容:
1.首页在后台单页文档管理里添加一个单页文档,内容编辑框输入你要的内容生成。
2.在需要调用单页文档的地方加入SQL万用标签{dede:sql sql=”select body from dede_sgpage where aid=2″}[field:body/]{/dede:sql}相信熟悉SQL语言的朋友很容
易看懂这句含义。意思其实就是选择数据表dede_sgpage的body字段输入,aid=2这里的2表示你创建单页文档ID数字,你使用时做下相应修改即可。
又如这句SQL标签样例代码:
{dede:sql sql="select content from dede_arctype where id=2"}
[field:content function=cn_substr(Html2Text( me),600)/]
{/dede:sql}
根据上面的例子,应该很好理解了,这里主要说明一下cn_substr表示截取600个字符也就是300个汉字。Html2Text代表把含有HTML的字符过滤掉,只显示文本。
其实除了上面的例子外,在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}