关于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文件,常用字段都给你写在注释里了。
如果可以请也将我昨天给你回答的采纳一下。
做dede织梦程序的站长和优化dede织梦的SEOER,相信你们会发现dede织梦默认的dedecms(织梦系统)的Tag标签URL不是静态的,在织梦tag标签URL里含有“tagsphp/%BE%AD%D1%E9%B7%D6%CF%ED/”,如图 图见乐晨博客官网 很长而且网址也很难看,长难看不说,关键是像这类URL俗称动态的URL;做网站/seo优化的朋友我想大家都知道这是不利于搜索引擎的。那么,我们就要把它优化变成静态的;如何修改才能实现dede织梦TAG标签的静态化呢下面乐晨就站酷工作室的朋友指点及网络搜索一些知识来分享一下,希望可以帮到在这里遇到困难的伙伴们! 分享前先说下吧,针对DEDE织梦TAG标签静态化修改出了一款插件,开始走商业化的,后来随着竞争及分享,导致做这个技术的朋友利润估计少了;现在就成了免费的技术分享了!所以我们是幸运的。呵呵。。。不过虽然免费,但是不懂点基础的,改起来还是有点吃力!不信往下看 一、插件说明 本修改适用56可以生成网站所有TAG列表的静态网页文件,还有生成tag的首页静态文件。 乐晨温馨提示:修改前,请备份相关的原始文件。 二、步骤修改 1、在DEDE织梦网站根目录,建立“tag”目录(注:小写;为啥要建个”tag”目录呢小编操作过发现当你生成新的dede织梦TAG标签URL文件时,都会存储在这个目录里,如图) 图见乐晨博客官网 2、在DEDE后台SQL运行器里,执行以下一条SQL:ALTERTABLE`dede_tagindex`ADD`maketime`INT(10)UNSIGNEDNOTNULLDEFAULT'0'; 3、增加文件: templets/default/list_taghtm//可从文章列表页复制修改 templets/default/index_taghtm//可从taghtm复制 dede/makehtml_tag_action_listphp dede/makehtml_tag_action_indexphp dede/makehtml_tagphp dede/templets/makehtml_taghtm include/arctaghtmlclassphp 4、修改文件: dede/inc/inc_menuphp 143行,插入 include/taglib/taglibphp61行屏蔽,62行插入(参考附带的文件,也可以直接覆盖) include/extendfuncphp把里面的代码,都复制到你的extendfuncphp文件里 三、使用说明: 1、进入后台“生成”,即可看到左边的“更新TAG静态”(就在更新主页、栏目、文档等功能的下方) 2、自行编辑TAG列表页模板list_taghtm、TAG首页模板index_taghtm,都放在你站点模板所在目录即可(和首页模板、列表页模板、内容页模板等在一起) 3、生成有个选项“是否强制全部生成”,它是为了节约资源设计的 如果是“重新生成全部TAG列表”,它会更新所有的TAG的列表页; 如果是“仅更新上次生成后有变化的TAG”,它则会只更新上次更新之后有变化及新增加的TAG的列表页,这个比较节约时间 4、生成的TAG首页,放在根目录,叫做tagshtml 5、如果你的模板里,还有TAG需要指向到它的静态地址,则用参考这个函数去处理其标签即可: {dede:tagtype='current'} [field:idfunction="nic_tag_url(@me)"/] {/dede:tag} 其中的id就是这个TAG的ID号 6、在内容页模板,如果想指向该文TAG的列表页,用以下标签即可: {dede:fieldidfunction='nic_arc_tag_link(@me)'/} 在文章列表页、arclist标签等,使用一下代码调用文章TAG列表 [field:idfunction='nic_arc_tag_link(@me)'/] 四、高级补充说明: 1、TAG这个目录可以改,修改arctaghtmlclassphp的146行和extendfuncphp的15行,里面的tag/字样 2、文件名里的id号不能去掉,举例说因为“作业”和“昨夜”的拼音都一样,如果没有ID,他们的文件名就重复了。 3、生成速度和普通列表页一致的,因为是从哪里修改过来的。你有1万个TAG,假定你每个TAG对应有30个文章吧,列表页10篇为一页,那就有3万篇了。 你可以到后台的sql运行工具里,执行这一句看看,就知道TAG对应文章之后,数量就远大于TAG数量本身: selectcount()ascfromdede_taglist 4、如果需要在发布新文章的时候,同时更新相关的TAG列表页,可以参考附带的inc_archives_functionsphp,修改你DEDE后台目录dede/inc/inc_archives_functionsphp 增加741行、758~765行 这就是关于dede织梦tag标签静态化如何修改的方法;这里还需要插件的代码辅助! 织梦Tag标签静态化修改-织梦插件下载地址:
一、dede后台开启伪静态
二、修改 /include/taglib/taglibphp
找到
$row['link'] = $cfg_cmsurl”/tagsphp/”urlencode($row['keyword'])”/”;
改成
$row['link'] = $cfg_cmsurl”/tags/”urlencode($row['keyword'])”html”;
三、打开templets/default/taglisthtm
找到
<strong>当前位置:</strong>:<a href=”{dede:globalcfg_cmsurl/}/”>主页</a> > <a href=’tagsphp’>TAG标签</a> > {dede:fieldtitle /}
修改为
<strong>当前位置:</strong>:<a href=”{dede:globalcfg_cmsurl/}/”>主页</a> > <a href=’/tagshtml’>TAG标签</a> > {dede:fieldtitle /}
四、httpdini 或者 htaccess 文件里加
RewriteRule ^()/tags\html $1/tags\php
RewriteRule ^()/tags/()html $1/tags\php\$2
0条评论