如何设置dedecms标题标签、关键词标签、描述标签
使用dedecms中,发现{dede:datalist} 下 用 [field:array runphp='yes'] 或者 {dede:field name='array' runphp='yes'} 并不起作用。
经过一番搜索和验证,发现{dede:if} 可以用,下面是一个实例:
{dede:if $fields['content'] != ''}
//第一个语句
{else}
//第二个语句
{/dede:if}
说明:1、发现必须用$fields , 如果用$value 不起作用。
2、‘content’ 为你需要判断的字段。
在\dede\include\extendfuncphp文件中添加如下函数:
function getArticleList($category=0,$order="",$limit="0,200"){
global $dsql;
$query = "SELECT arc,tptypedir,tptypename,tpcorank,tpisdefault,tpdefaultname,tpnamerule,
tpnamerule2,tpispart,tpmoresite,tpsiteurl,tpsitepath
FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp on arctypeid=tpid
where tpid=$category";
//此sql语句我只加了where判断文章所属分类
//其他的order limit 你根据需要自己添加
$dsql->SetQuery($query);
$dsql->Execute('lit');
$arr = array();
$cnt = 0;
$str = "";
while ($row = $dsql->GetArray('lit')) {
if($cnt%4 == 0){
$str = "<div class='css1'>";
}
if($cnt%4 > 0){
$class = "css3";
}else{
$class = "css2";
}
$str = "<span class='"$class"'>"$row['title']"</span>";
$cnt++;
if($cnt%4 == 0){
$str = "</div>";
}
//$row中可用的常用字段如下:$row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'], row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']
}
return $str;
}
然后在模板中使用
{dede:field name='typeid' function="getArticleList(@me)" /}
将分类的id传给此函数就可以调用到数据,输出就是你要的格式。
输出内容你修改下php文件,常用字段都给你写在注释里了。
如果可以请也将我昨天给你回答的采纳一下。
首页:
<title>{dede:globalcfg_webname/}</title>
<meta name="keywords" content="{dede:globalcfg_keywords/}" />
<meta name="description" content="{dede:globalcfg_description/}" />
设置是在“系统->系统基本参数->站点设置”里的“网站名称”、“站点默认关键字”、“站点描述”。
栏目页:
<title>{dede:fieldseotitle/}</title>
<meta name="keywords" content="{dede:fieldkeywords/}" />
<meta name="description" content="{dede:fielddescription/}" />
设置是在各栏目“修改->高级选项”里面的“SEO标题”、“关键字”、“栏目描述”。
文章页:
个人经验是文章标题做title和keywords,文章简介做description
<title>{dede:fieldtitle/}</title>
<meta name="keywords" content="{dede:fieldtitle/}" />
<meta name="description" content="{dede:fielddescription/}" />
[field:litpic /]或者{dede:fieldlitpic /}
<!--这是调用文章缩略图的标签,前面的是在arclist等列表标签中调用的,后者是在文档内容页面调用文档详细信息中用的,本经验来自IT零五网-->
{dede:field name='imgurls' alt='输出区'}
[field:pagestyle runphp='yes'] @me= (@me==3 '<li>' : '');[/field:pagestyle]
<a href='[field:linkurl/]' [field:pagestyle runphp='yes'] @me= (@me==3 'class="pic"' : ''); [/field:pagestyle]>
<img src='[field:imgsrc/]' id='bigimg' [field:imgwidth /] alt='[field:alttext /]' border='0' />
</a>
<a href='[field:linkurl/]' [field:pagestyle runphp='yes']@me = (@me==3 'class="title"' : '');[/field:pagestyle]>
[field:title /]
</a>
[field:pagestyle runphp='yes'] @me = (@me==3 '</li>' : ''); [/field:pagestyle]
{/dede:field}
<!--上面是图集内容输出的标签,本经验来自IT零五网-->
1、标签名称:adminname
功能说明:
获得责任编辑名称
使用实例:
{dede:adminname /}
2、标签名称:arclist
功能说明:
文章列表调用标记
使用实例:
{dede:arclist flag='h' typeid='' row='' col='' titlelen='' infolen=''
imgwidth='' imgheight='' listtype='' orderby='' keyword='' limit='0,1'}
<a href='[field:arcurl/]'>[field:title/]</a>
{/dede:arclist}
参数说明:
col='' 分多少列显示(默认为单列),53版中本属性无效,要多列显示的可用div+css实现
row='10' 返回文档列表总数
typeid='' 栏目ID,在列表模板和档案模板中一般不需要指定,在封面模板中允许用","分开表示多个栏目;
titlelen = '30' 标题长度 等同于titlelength
infolen='160' 表示内容简介长度 等同于infolength
imgwidth='120' 缩略图宽度
imgheight='90' 缩略图高度
listtype='all' 栏目类型(顶级栏目??)
orderby='sortrank' 文档排序方式
§ orderby='hot' 或 orderby='click' 表示按点击数排列
§ orderby='sortrank' 或 orderby='pubdate' 按出版时间排列
§ orderby='near'
§ orderby=='lastpost' 按最后评论时间
§ orderby=='scores' 按得分排序
§ orderby='id' 按文章ID排序
§ orderby='rand' 随机获得指定条件的文档列表
keyword='' 含有指定关键字的文档列表,多个关键字用","分
innertext = '' 单条记录样式
aid='' 指定文档ID
idlist ='' 提取特定文档(文档ID)
channelid 频道ID
limit='' 起始,结束 表示限定的记录范围(如:limit='1,2')
flag = 'h' 自定义属性值:头条[h]推荐[c][p]幻灯[f]滚动[s]跳转[j]图文[a]加粗
noflag = '' 同flag,但这里是表示不包含这些属性
orderway='desc' 值为 desc 或 asc ,指定排序方式是降序还是顺向排序,默认为降序
subday='天数' 表示在多少天以内的文档
3、标签名称:arclistsg
功能说明:
单表模型的文章列表调用标记
使用实例:
{dede:arclistsg flag='h' typeid='' row='' col='' titlelen='' orderway='' keyword='' limit='0,1'}
<a href='[field:arcurl/]'>[field:title/]</a>
{/dede:arclistsg}
参数说明:
col='' 分多少列显示(默认为单列),53版中本属性无效,要多列显示的可用div+css实现
row='10' 返回文档列表总数
typeid='' 栏目ID,在列表模板和档案模板中一般不需要指定,在封面模板中允许用","分开表示多个栏目;
titlelen = '30' 标题长度 等同于titlelength
orderwey='desc'或'asc' 排序方向
keyword= 含有指定关键字的文档列表,多个关键字用","分
innertext = "[field:title/]" 单条记录样式(innertext是放在标签之间的代码)
arcid='' 指定文档ID
idlist ='' 提取特定文档(文档ID)
channelid = '' 频道ID
limit='' 起始,结束 表示限定的记录范围(如:limit='1,2')
flag = 'h' 自定义属性值:头条[h]推荐[c][p]幻灯[f]滚动[s]跳转[j]图文[a]加粗
subday='天数' 表示在多少天以内的文档
4、标签名称:autochannel
功能说明:
按排序位置的获取单个栏目的链接信息
使用实例:
{dede:autochannel partsort='' typeid=''}{/dede:autochannel}
参数说明:
partsort = '0' 栏目所在的排序位置
typeid = '0' 指定的父栏目
5、标签名称:channel
功能说明:
获取栏目列表标签
使用实例:
{dede:channel type='top' row='8' currentstyle="<li><a href='~typelink~' class='thisclass'>~typename~</a> </li>"}
<li><a href='[field:typelink/]'>[field:typename/]</a> </li>
{/dede:channel}
参数说明:
typeid = '0' 栏目ID
reid = '0' 上级栏目ID
row = '100' 调用栏目数
col = '1' 分多少列显示(默认为单列)
type = 'son' son表示下级栏目,self表示同级栏目,top顶级栏目
currentstyle = '' 应用样式
6、标签名称:channelartlist
功能说明:
获取当前频道的下级栏目的内容列表标签
使用实例:
{dede:channelartlist row=6}
<dl>
<dt><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a></dt>
<dd>
{dede:arclist titlelen='42' row='10'} <ul class='autod'>
<li><a href="[field:arcurl /]">[field:title /]</a></li>
<li>([field:pubdate function="MyDate('m-d',@me)"/])</li>
</ul>
{/dede:arclist}
</dl>
{/dede:channelartlist}
参数说明:
typeid = '0' 频道ID,多个请用","分隔
row = '20' 获取的栏目返回值
其他说明:
除了宏标记外,channelArtlist 是唯一一个可以直接嵌套其它标记的标记,不过仅限于嵌套
{dede:type}{/dede:type} 和 {dede:arclist}{/dede:arclist} 两个标记。
7、标签名称:demotag
功能说明:
这仅是一个演示标签
使用实例:
{dede:demotag /}
8、标签名称:feedback
功能说明:
调用最新评论
使用实例:
{dede:feedback}
<ul>
<li class='fbtitle'>[field:username function="(@me=='guest' '游客' : @me)"/] 对 [field:title/] 的评论:</li>
<li class='fbmsg'> <a href="plus/feedbackphpaid=[field:aid/]" class='fbmsg'>[field:msg /]</a></li>
</ul>
{/dede:feedback}
参数说明:
row='12' 调用评论条数
titlelen='24' 标题长度
infolen='100' 评论长度
9、标签名称:flink
功能说明:
友情链接
使用实例:
{dede:flink row='24'/}
参数说明:
type='image' 或textall,链接,text文字链接;
row='24' 链接数量
titlelen='24' 站点文字的长度
linktype='1' 链接位置(首页,内页)
typeid='0' 所有类型
10、标签名称:hotwords
功能说明:
获取网站搜索的热门关键字
使用实例:
{dede:hotwords /}
参数说明:
num='6' 关键词数目
subday='365' 天数
maxlength='16' 关键词最大长度11、标签名称:infoguide
功能说明:
分类信息的地区与小分类搜索
使用实例:
{dede:infoguide /}
12、标签名称:likepage
功能说明:
单页文档相同标识调用标签
使用实例:
{dede:likepage likeid='' row=''/}
参数说明:
row = '' 调用条数
likeid = '' 标识名
13、标签名称:likesgpage
功能说明:
单页文档调用标签
使用实例:
{dede:likespage row=''/}
参数说明:
row = '' 调用条数
14、标签名称:loop
功能说明:
调用任意表的数据标签
使用实例:
{dede:loop table='dede_archives' sort='' row='4' if=''}
<a href='[field:arcurl/]'>[field:title/]</a>
{/dede:loop}
参数说明:
table = '' 查询表名
sort = '' 用于排序的字段
row = '' 返回结果的条数
if = '' 查询的条件
15、标签名称:memberinfos
功能说明:
文档关连的用户信息
使用实例:
{dede:memberinfos /}
参数说明:
无属性,支持 innertext
16、标签名称:memberlist
功能说明:
会员信息调用标签
使用实例:
{dede:memberlist orderby='scores' row='20'}
<a href="/member/indexphpuid={dede:fielduserid /}">{dede:fielduserid /}</a>
<span>{dede:fieldscores /}</span>
{/dede:memberlist}
参数说明:
orderby = 'scores' 按积分排序
row = '6' 调用数目
17、标签名称:myad
功能说明:
广告调用
使用实例:
{dede:myad name=''/}
参数说明:
typeid='0' 投放范围,0为全站
name='' 广告标识
18、标签名称:mynews
功能说明:
站内新闻调用标签
使用实例:
{dede:mynews row='' titlelen=''/}
参数说明:
row='1' 调用站内新闻数
titlelen='24' 新闻标题长度
19、标签名称:mytag
功能说明:
自定义宏标记调用标签
使用实例:
{dede:mytag typeid='0' name=''/}
参数说明:
typeid = '0' 栏目ID 0为全站栏目
name = '' 标记名
20、标签名称:softmsg
功能说明:
下载说明标签
使用实例:
{dede:softmsg /}
21、标签名称:sonchannel
功能说明:
子栏目调用标签
使用实例:
{dede:sonchannel}
<a href='[field:typeurl/]'>[field:typename/]</a>
{/dede:sonchannel}
参数说明:
row ='100' 返回数目
col = '1' 默认单列显示
22、标签名称:sql
功能说明:
SQL标签
使用实例:
{dede:sql sql=''}
[field:title/]
{/dede}
参数说明:
sql='' 完整的SQL语句
23、标签名称:tag
功能说明:
TAG调用标签
使用实例:
{dede:tag row='30' sort='new'/}
参数说明:
row='30' 调用条数
sort='new' 排序方式 month,rand,week
24、标签名称:type
功能说明:
指定的单个栏目的链接标签
使用实例:
{dede:type}
<a href="[field:typelink /]">[field:typename /]</a>
{/dede:type}
参数说明:
typeid='' 指定栏目ID
25、标签名称:vote
功能说明:
投票标签
使用实例:
{dede:vote id='' lineheight='22' tablewidth='100%' titlebgcolor='#EDEDE2' titlebackground='' tablebgcolor='#FFFFFF'/}
参数说明:
id='' 数字,当前投票ID
lineheight='24' 表格高度
tablewidth='100%' 表格宽度
titlebgcolor='#EDEDE2' 投票标题背景色
titlebackground=''
tablebg ='' 投票表格背景色
为了更方便修改样式,建议在后台->辅助插件->投票管理,直接复制生成的HTML代码来使用 《 幻为您专业解答》
织梦标签调用:根据特定需求调用文章的标签代码;
1、相关文章调用标签
{dede:likeart titlelen='30' row='10'}
<li><a title="[field:title function='htmlspecialchars(@me)'/]" href="[field:arcurl /]">[field:title /]</a></li>
{/dede:likeart}
表示读取10条相关文章,标题长度30个字符。
2、热点文章调用标签
{dede:arclist orderby='click' titlelen='30' row='10'}
<li><a title="[field:title function='htmlspecialchars(@me)'/]" href="[field:arcurl /]">[field:title /]</a></li>
{/dede:arclist}
表示读取10条热点文章,标题长度30个字符。
3、随机推荐调用标签
{dede:arclist type='commend' titlelen='30' orderby='rand' row='10'}
<li><a title="[field:title function='htmlspecialchars(@me)'/] " href="[field:arcurl /]">[field:title /]</a></li>
{/dede:arclist}
表示随机读取10条推荐文章,标题长度30个字符。
4、推荐文章调用标签
{dede:arclist type='commend' titlelen='30' row='10'}
<li><a title="[field:title function='htmlspecialchars(@me)'/] " href="[field:arcurl /]">[field:title /]</a></li>
{/dede:arclist}
表示读取10条推荐文章,标题长度30个字符
5、指定从第二篇文章开始调用的图文标签
{dede:arclist limit='1,10' titlelen=30 orderby=pubdate typeid='1' idlist='' type='image' imgwidth='200' imgheight='100'}
<a href="[field:arcurl/]"><img src="[field:picname/]" alt="[field:title/]" ></a>
<a title="[field:title function='htmlspecialchars(@me)'/] " href="[field:arcurl /]">[field:title /]</a>
{/dede:arclist}
在Dedecms系统中,文章摘要(可以通过infolen或description相关标签调用)被设置了字数上限为250字符,设置上限的主要目的是减少数据库的冗余,保证网站良好的性能。因此,如果对简介内容不设置上限显然不合理,但是如果可以自由控制这一上限,那么将对网页内容布局带来积极作用。在网页设计过程中,往往需要在频道列表页面调用到文章摘要,如果可以有效控制文章摘要的字数,那么就可以使得页面布局很灵活。
在Dedecms中,在列表页调用文章摘要的方法主要有:
1:[field:info /]
2:[field:description /]
3:[field:info function="cn_substr(@me,字符数)"/]
4:[field:description function="cn_substr(@me,字符数)"/]
第1、2种方法是直接调用文章摘要,在调用的字数问题上,当使用[field:info /]时,可以在{dede:arclist infolen=' ' }{/dede:arclist}中,设置调用摘要的字符数(最高可设置为系统设置的250);如果使用[field:description /],则直接使用后台设置的摘要字符上限。显然,这两种方式都很被动,灵活性太差。
第3、4种方法通过function函数实现了对文章摘要显示字符的灵活调整。当然,在没有修改文章摘要内容字符上限时,这4个方法的差异并不大。但是,下面我们来说如何修改这一上限值,就可以体现出[field:description function="cn_substr(@me,字符数)"/]这一方式的重要性。
在Dedecms中,与文章摘要相关的php文件主要有:
/dede/archives_addphp
/dede/archives_editphp
/dede/article_addphp
/dede/article_editphp
/dede/article_description_mainphp
在add页面,有一句话是:“$description = cn_substrR($description,$cfg_auot_description); ”,这句话实现了[field:description function="cn_substr(@me,字符数)"/]这一功能。因为这一语句确实有利于页面布局,因此我们在实验中没有修改。
在edit页面,有一句话是:“$description = cn_substrR($description,250); ”,这句话中出现了一个熟悉的字符数“250”,这就是系统设置的文章摘要字符数的上限值。 如果是gbk编码则显示出来的就是125个字。如果是utf-8编码则是81个字。显然,我们要突破文章摘要字符数上限,肯定得拿它开刀了。是的,这里修改“250”为其他值即可,例如“500”。这里不推荐设置得过高,一个是在列表页没必要展示太多内容(展示太多内容不如直接用body了),另一个是避免数据库产生冗余。
完成上面的修改还不够,还需要修改article_description_mainphp
在article_description_mainphp页面,找到“if($dsize>250) $dsize = 250;”语句,这里限制了在后台自动获取摘要的字符数。把这里的“250”修改为“500”即可,也就是和之前修改的字符数一致即可。(如果你确认你的每一条文章都是手动添加,手动完成摘要获取就不需要修改这个文件了。自动摘要获取主要还是给大量文章和采集准备的。)
最后,登录后台,在系统-系统基本参数-其它选项中,自动摘要长度,改成500即可,也就是和之前修改的字符数一致即可。
完成上述修改后,我们再到频道列表页,通过标签调用即可,示例标签如下:
{dede:list typeid='' row='5' titlelen='100' orderby='new' pagesize='5'}
<h3><a href='[field:arcurl/]'>[field:title/]</a></h3>
<p>[field:description function='cn_substr(@me,500)'/]</p>
{/dede:list}
通过以上方式,我们就实现了调用的文章摘要字符为500字符,完全突破了文章摘要250字符的系统限制,为网页布局提供了更加广阔的空间。
{dede,globalname=cfg_powerby/}。
dedecms中常用标签还有,版权{dede,global。cfg_beian/},底部调用标签,{dede,includefilename=footer。htm/},网站备案调用标签,{dede,globalname=cfg_beian/}等。
dede是织梦内容管理系统dedecms的简称,以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统。
0条评论