dedecms自定义标签问题!
在\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文件,常用字段都给你写在注释里了。
如果可以请也将我昨天给你回答的采纳一下。
Meta标签的SEO设置
对于我们搜索引擎优化来说,最为重要的标签大家已经了解了,但具体应该如何优化这些标签呢?下面,我们就来具体说明。
(1)、网页描述Description
网页的描述要根据网站的实际内容填写,很多站长会随意填写网站的描述,或者在描述中大量堆砌关键词,这些都是对SEO不利的行为,例如一个以SEO知识和资讯为主的站点,它的描述Meta标签可以这样写:
<META NAME="Description" CONTENT="为大家提供SEO优化知识、最新SEO技巧、SEO软件下载等丰富实用信息。">
这样的描述不仅概括了整个网站的内容,也突出了软件这一关键词,而类似“某某网站是最好的门户”、“某某网站为您服务”这样的描述,就由于忽略了网站的主要关键词,而让搜索引擎摸不着头脑。
(2)、网页关键词Keywords
与META标签中的"description"类似,"Keywords"也是用来描述一个网页的属性,只不过要列出的内容是“关键词”,而不是网页的介绍,这就意味着,要根据网页的主题和内容选择合适的关键词
对此,建议各位SEO人员在选择关键词时,除了要考虑与网页核心内容相关之外,还应该是用户易于通过搜索引擎检索的,过于生僻的词汇不太适合做META标签中的关键词。
由于网页关键词由于一直被大量地用于优化,目前它对于搜索引擎的重要性已经不如以前了,但是完善网页的关键词标签仍然可以起到一定的作用。
同样以一个SEO知识网站为例,它的关键词可以这样写:
<META NAME="Keywords" CONTENT="新手学SEO,SEO基础知识、SEO应用、SEO学习">
$ctag->GetAtt('flag');当前默认情况下flag设置的是c属性。。如果必须在标签中存在这个flag这个字段例如:
{dede:arclist wodefiled='你号'}
{/dede:arclist}
那么在你的arclistlibphp中的代码就可以使用$ctag->GetAtt('wodefiled=');
在这种情况下可以获取到你的字段。。
如果当前你想调用默认的falg的标签就无需这么GetAtt了 它不会去查找你的定义默认的标签$attlist="flag|c,row|12,titlelen|24";也就是说你当前这里定义的属性不需要使用GetAtt来调用。
而如果{dede:arclist flag='h'}
{/dede:arclist}
而设置了flag的属性就可以调用了。
{dede:arclist row='20' orderby='pubdate' idlist='' channelid='1' }
[field:global runphp='yes' name=autoindex]
$a="<li><img src='field:picname/]' /></a></li>";
$b="$b="<li class='样式'><img src='field:picname/]' /></a></li>";";
if ((@me%2)==0) @me=$a;
else @me=$b;
[/field:global]
{/dede:arclist}
0条评论