dedecms 提取文章中第一个的URL地址。
1、首先打开织梦网站后台登陆,在左侧菜单找到“核心”菜单,并打开“网站栏目管理”项目。
2、找到需要修改标题栏目,点击“修改”按钮。
3、选择“高级模式”,并点击,选择“高级选项”。
4、找到其中的 “SEO标题”、“关键词”、“描述”,填写改栏目页的“标题”、“关键词”、“描述”,并保存。
5、然后选择左侧菜单栏目中的“模板”菜单,选择“默认模板管理”项目,并点击。
6、在模板管理项中找到该栏目页的网页模板,进行修改。
7、然后在后台左侧菜单中找到“生成”菜单,选择“更新栏目HTML”项目,选择“更新子栏目”按钮,点击“开始生成html”,就完成了。
耗谌菀持瓼IELD标签”,文章页用的最多的是field标签,但还有一些用的比较少的标签,往往有的时候却是需要它们,到这里引入我们今天的主题,如何获取相关文章,有的站长在考虑seo优化方面的时候就需要在文章下面加入相关文章链接,那么这个在DEDE里面要如何实现呢?别急,下面小编和大家一起学习一个新的标签,我们通过这个标签即可获取相关文章,这个标签叫likeart,likeart标签和我们前面讲的arclist也是有点类似的,因为它们都是获取文章列表,我们来看一下它是怎么个用法,只需要给它设置两个属性即可,一个是titlelen,是文章标签长度的意思,还有一个是row,是获取多少条的意思,这些都根据自己的需要来设置。下面小编来写一个完整的,大家可以参考下:1 {dede:likeart2 3 titlelen='24' row='10'}4 5 [field:title/]6 7 {/dede:likeart}在上述代码中,中间部分如果大家看了小编前面的教程想必都不会陌生的,是两个底层模板,底层模板小编讲的太多了,这里就不重复了,一个是文章URL,一个是文章标题。我们把代码保存到文章页模板(article_articlehtm)中适当位置,然后上传到您的php虚拟主机去测试,别忘了重新在后台生成下HTML哦,不然是看不到效果的,如果成功可以调取10篇相关文章,大家可以看下小编的测试效果图:DEDECMS仿站建站基础
同你的方法, 只要在include/extendfuncphp 加入一个自定义函数,然后再在列表页直接调用。
函数:
/
获取字符串的第一个地址
/
function getbodyfirstpic($str_img){
preg_match_all("/<img\>/isU",$str_img,$ereg);//正则表达式把的整个都获取出来了
$img=$ereg[0][0];//
$p="#src=('|\")()('|\")#isU";//正则表达式
preg_match_all ($p, $img, $img1);
$img_path =$img1[2][0];//获取第一张路径
//return $img_path; //仅返回地址
return $img; //返回整个
}
列表调用:
[field:body function="getbodyfirstpic(@me)" /]
用ajax读取下一页内容,然后显示到当前页面
在模板页面</head>之前加以下内容
<script type="text/javascript" src="{dede:globalcfg_cmsurl/}/include/dedeajax2js"></script><script language="javascript" type="text/javascript">
function multi(pagenum,tagid)
{
var taget_obj = documentgetElementById(tagid);
var taget_obj_page = documentgetElementById("page_"+tagid);
myajax = new DedeAjax(taget_obj,false,false,'','','');
myajaxSendGet2("/plus/arcmultiphpmtype=0&pnum="+pagenum+'&tagid='+tagid);
myajax = new DedeAjax(taget_obj_page,false,false,'','','');
myajaxSendGet2("/plus/arcmultiphpmtype=1&pnum="+pagenum+'&tagid='+tagid);
DedeXHTTP = null;
return false;
}
</script>
在模板页面 列表代码
{dede:arclist typeid="1,2,3" tagid='anynews' pagesize='30' row='10000'}<li> <a href='[field:arcurl/]' target='_blank'>
<span class='preview'><img src='[field:litpic/]' alt="[field:title/]"/></span><span class="title">[field:title/]</span>
</a></li>
{/dede:arclist}
在模板页面列表容器之后加分页代码
<div class="dede_pages"><ul class="pagelist">
{dede:arcpagelist tagid='anynews'/}
</ul>
</div>
修改完保存即可。用此办法可以在当前页不刷新显示下一页内容。如果希望点击下一页后新显示的内容添加到旧内容后面,那么需要修改/include/dedeajax2js文件104行
DedeContainerinnerHTML = DedeXHTTPresponseText;改成
DedeContainerinnerHTML += DedeXHTTPresponseText;参考dedecms的帮助文档中的arclist标签
标签名称:arclist
标记简介:织梦常用标记,也称为自由列表标记,其中imglist、imginfolist、specart、coolart、autolist都是由该标记所定义的不同属性延伸出来的别名标记。
功能说明:获取指定文档列表
适用范围:全局使用
基本语法:
{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版中本属性可以通过多种方式进行多行显示
如果col='1'要多列显示的可用div+css实现
以下为通过div+css实现多列的示例:
<style type=text/css>
div{width:400px;float:left;}
</style>
{dede:arclist row='10' titlelen='24' orderby='pubdate' idlist='' col='2'}
•[field:textlink/]([field:pubdate function=MyDate('m-d',@me)/])<br/>
{/dede:arclist}
当col>1将使用原来的table多列方式显示
row='10' 返回文档列表总数
typeid='' 栏目ID,在列表模板和档案模板中一般不需要指定,在首页模板中允许用","分开表示多个栏目;
getall='1' 在没有指定这属性的情况下,在栏目页、文章页模板,不会获取以","分开的多个栏目的下级子类
titlelen = '30' 标题长度 等同于titlelength
infolen='160' 表示内容简介长度 等同于infolength
imgwidth='120' 缩略图宽度
imgheight='90' 缩略图高度
listtype='all' 栏目类型 image含有缩略图 commend推荐
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='起始ID,记录数' (起始ID从0开始)表示限定的记录范围(如:limit='1,2' 表示从ID为1的记录开始,取2条记录)
flag = 'h' 自定义属性值:头条[h]推荐[c][p]幻灯[f]滚动[s]跳转[j]图文[a]加粗[b]
noflag = '' 同flag,但这里是表示不包含这些属性
orderway='desc' 值为 desc 或 asc ,指定排序方式是降序还是顺向排序,默认为降序
subday='天数' 表示在多少天以内的文档
用arclist调用于附加表字段的方法:
要获取附加表内容,必须符合两个条件
1、指定 channelid 属性
2、指定要获得的字段 addfields='字段1,字段'
如:
{dede:arclist addfields='filetype,language,softtype' row='8' channelid='3'}
[field:textlink /] - [field:softtype /]<br />
{/dede:arclist}
底层模板字段:
ID(同 id),typeid,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,color,writer,
source,litpic(同picname),pubdate,senddate,mid, lastpost,scores,goodpost,badpost,notpost,
description(同infos),filename, image, imglink, fulltitle, textlink, typelink,plusurl, memberurl, templeturl,
stime(pubdate 的"0000-00-00"格式)
其中:
textlink = <a href='arcurl'>title</a>
typelink = <a href='typeurl'>typename</a>
imglink = <a href='arcurl'><img src='picname' border='0' width='imgwidth' height='imgheight'></a>
image = <img src='picname' border='0' width='imgwidth' height='imgheight' alt=’titile’>
字段调用方法:[field:varname/]
如:
{dede:arclist infolen='100'}
[field:textlink/]
<br>
[field:infos/]
<br>
{/dede:arclist}
注:底层模板里的Field实现也是织梦标记的一种形式,因此支持使用PHP语法,Function扩展等功能。
如: 给当天发布的内容加上 (new) 标志
[field:senddate runphp='yes']
$ntime = time();
$oneday = 3600 24;
if(($ntime - @me)<$oneday) @me = "<font color='red'>(new)</font>";
else @me = "";
[/field:senddate]
0条评论