求dedecms文章内容页添加tags标签的方法是什么?谢谢
其实网站形态分两种,静态和动态,伪静态并不是真正的静态,实质上也是动态页面。
静态页面,除了我们常见的htm和 html以后,asp php jsp也可以是静态的,关键是看asp php jsp这些页面是否调用了数据库里的东西,如果没有调用,它就是静态页面,调用了,就是动态页面。
动态页面的含意就是,网页会根据访问者的请求,从服务器数据库里筛选访问者想要的内容显示到访问者的浏览器上,不同的人访问同一页面,会看到不同的内容,这个网页本身里并没有数据,只有一些代码,访问者看到的,都是服务器里调出来的。
而静态页面,是事先把文字都放到页面里了,不需要从数据库里调,访问者访问一个页面,会直接从服务器把这个页面读出来显示到访问者的浏览器里,不需要数据库的支持。
伪静态页面,其目的是为了更好的被搜索引擎收录而通过一定的规则,把动态页面的地址转换成以htm或html结尾的地址,看起来是静态的,实际是依然是动态页面。
现在很多CMS网站程序,都可以把动态页面直接生成真静态的,就是所访问的页面是真真实实存的,根静态页面一样。这样的好处是访问速度快,不需要频繁去读取筛选服务器里的数据,减轻了服务器的压力,同时也能更好地被搜索引擎收录。
方法:进后台——>设置——>固定链接
先择自定义结构,按照自己的需要添加年月日或其它什么的如图所动漫。如:/%year%%monthnum%%day%%post_id%html 这个写法就是年月日+文章IDhtml 的写法。保存后,文章地址栏的地址就是:http://域名/固定链接html
wordpress固定链接设置的一些参数:
%year%:基于文章发布的年份,比如2010;
%monthnum%:基于文章发布的月份,比如01;
%day%:基于文章发布当日,比如06;
%hour%:基于文章发布小时数,比如23;
%minute%:基于文章发布分钟数,比如43;
%second%:基于文章发布秒数,比如33;
%postname%:基于文章的postname,其值为撰写时指定的缩略名,不指定缩略名时是文章标题;
%post_id%:基于文章post_id,比如48;
%category%:基于文章分类,子分类会处理成“分类/子分类”这种形式;
%author%:基于文章作者名。
将上述参数进行组合,即可得到wordpress的固定链接形式。网上常见的几种设置方法:
/%year%/%monthnum%/%day%/%postname%/
/%year%/%monthnum%/%postname%/
/%year%/%monthnum%/%day%/%postname%html
/%year%/%monthnum%/%postname%html
/%category%/%postname%html
/%post_id%html
分类目录URL的修改:
wordpress默认情况下分类目录URL格式会有一个category 出来,如:http://wanlimmcom/category/itqianyian ,为了美观和利于SEO,一般我们都想去掉这个category。如何去掉wordpress分类目录链接的category ,其实也很简单的。我们登陆 wordpress的后台管理,进入“设置”栏目下的“固定链接”页面,在“分类目录前缀”文本框中输入一个点“”即可移除分类目录链接中的前缀。如下图:
注:这种分类的设置在有的空间没有效果,有的空间可以用。具体原因,我也不太清楚。
Tag标签是web20的东西,相当于关键词。我们在使用dedecms的时候应该如何在文章内容页添加TAG标签功能呢Tag标签对于SEO帮助很大,具体修改方法有以下2种方法:
方法一:打开文章模板文件article_articlehtm;在{dede:fieldbody/}后面添加以下代码:
<div>
TAG标签:{dede:tag row='30' sort='new' getall='0'} <a href='[field:link/]'>[field:tag /]</a>{/dede:tag}
</div>
更新生成文档页,再查看效果。
方法二:织梦dedecms文章页调用Tag标签比较简单,1、找到文章模板在{dede:fieldbody/}后面加入{dede:fieldtags/}这个标签即可。但是织梦dedecms默认的Tag标签是没有链接的,接下来进行第二步。
2、给Tag标签加超链接
大家找到网站跟目录下的/include/helpers/archivehelperphp,找到120行左右。
if ( ! function_exists('GetTags'))
{
function GetTags($aid)
{
global $dsql;
$tags = '';
$query = "SELECT tag FROM `dede_taglist` WHERE aid='$aid' ";
$dsql->Execute('tag',$query);
while($row = $dsql->GetArray('tag'))
{
$tags = ($tags=='' $row['tag'] : ','$row['tag']);
}
return $tags;
}
}
替换成以下代码:
if ( ! function_exists('GetTags'))
{
function GetTags($aid)
{
global $dsql;
$tags = '';
$query = "SELECT tag FROM `dede_taglist` WHERE aid='$aid' ";
$dsql->Execute('tag',$query);
while($row = $dsql->GetArray('tag'))
{
$tags = ($tags=='' ''$row['tag']'': ',''
'$row['tag']''); }
return $tags;
}}
1、 最主要的就是迎合搜索引擎方便搜索引擎蜘蛛(Spider)来抓取网页上的相关内容!
2、 方便用户访问网站 一个好网页如果是动态的用户在相互传播时感觉对方信任度不会高但一看一个静态页相对用户对网页的信任度就高点而且伪静态的后缀方式基本雷同 一看就知道是伪静态还是真的静态网页!
3、 伪静态对SEO有利嘛SEO中的伪静态如何定义!
在影响网站在搜索引擎的排名中,有很重要的一条是网页静态化,很多朋友在研究SEO的时候,因为有些技术原因,伪静态成了最大的门槛。
我们知道,在SEO优化中,new_1234html要比newaspid=1234更容易收录,一般对于有独立服务器的朋友来说,你就可以使用ISAPI_Rewrite的方式写伪静态规则,而对于只有虚拟空间的朋友,可能你只能使用一些ASP生成HTML的系统来帮助你了。今天重点说一下利用ISAPI_Rewrite构建伪静态。
第一:
首先我们需要下载一个ISAPI_Rewrite,有精简版和完全版,一般精简版只能对服务器全局进行配置,而完整版可以对服务器上的各个网站进行伪静态配置。对于个人站长来说,精简版就足够了。
第二:
下载完成后,可以找到安装包里的msi的文件,安装即可。
第三:
打开Internet 信息服务,右键,web站点属性,点击ISAPI筛选器选项卡添加筛选器,这里的名称可以自己随意填写,路径自己指定ISAPI_Rewritedll,然后确定
下面我们先做一个测试页newasp,可以按照下面的代码写 <%=requestquerystring("id")%>
然后,在浏览器中输入:
http://127001/newaspid=1234
接着你就可以在网页上看到一行文字:“1234”
看到这几个数字,就说明你测试成功了。
现在我们开始来配置ISAPI_Rewrite :
打开ISAPI_Rewrite的目录,把httpdini的只读属性去掉,打开编辑。我们现在是需要把newaspid=1234修改成类似new_1234html的路径,因此,我们需要在httpdini中添加一句
RewriteRule /new_([0-9,a-z])html /newaspid={GetProperty(Content)}
保存后,我们就可以测试一下这个网址了:http://127001/new_1234html
可以看到页面上的“1234”了吧,就这样伪静态配置成功了!
当然,以上只是简单的,根据实际情况,还有目录型的,还有翻页类型等等。
==================================
还有一种我用过科讯的CMS,你自己可以在程序后台设置,楼主的肯定也是CMS的吧,DEDECMS还是帝国CMS还是梦之CMS?还有就是php168,风行等。。。
一、TAG标签的作用
Tag标签有两个明显的特性,一是可以自定义,二是对文章的高概括性。这就决定了它的作用是让我们发布的文章更容易被用户搜索到,便于用户根据兴趣或需求快速找到目标文章。
二、TAG标签的优化
1、始终要记得是为了方便用户而设置的
如果我们的网站没有足够优秀的用户体验,就很难获得排名、留住用户、促进产品交易,始终要记得TAG标签使用原则第一点就是注重用户,高于SEO。
2、与文章具有相关性的长尾词是最佳选择
TAG标签是为了将网站上同类或同主题的文章聚集在一起而生的,所以在设置的时候要保持与文章的相关性是必然,那么为什么还要用长尾词呢,不能用核心词吗?如果你想造成页面内部竞争,分散内部权重的话,就尽管把标签写成首页核心关键词吧!
3、每篇文章的TAG标签数量保持在3个为宜
对于tag标签的数量,亿丰网络之前做过一个小调查,有的站长从来不写标签,有的站长只是象征性地写1个,还有的站长习惯写一大堆,5个起步,7个不嫌多。其实,不管多少都不叫错,只要站长高兴、认为有用就可以。若是把优化效果考虑在内的话,保持在3个为宜。
4、TAG标签字数不宜过长且一定不能是句子
不超过5个字的tag标签对用户体验是最有利的,最不利的就是直接使用一个完整的句子。
5、tag标签页面内容要充实
这一点无需多说什么了吧,即便是新手站长,想必也不会犯这个错误吧。
首先在dede后台开启伪静态(开启的方法在系统参数-核心设置)
第一步 首先栏目和文章最好设置成动态浏览 这样才不会生成静态html文件
第二步 设置重写规则 在系统目录下加一个 htaccess文件 内容为:
复制代码
代码如下:
RewriteEngine On
RewriteRule ^plus/list-([0-9]+)html$ /plus/listphptid=$1
RewriteRule ^plus/list-([0-9]+)-([0-9]+)-([0-9]+)html$ /plus/listphptid=$1&totalresult=$2&PageNo=$3
RewriteRule ^plus/view-([0-9]+)-1html$ /plus/viewphparcID=$1
RewriteRule ^plus/view-([0-9]+)-([0-9]+)html$ /plus/viewphpaid=$1&pageno=$2
iis文件写法
复制代码
代码如下:
#首页伪静态规则,如果不使用动态首页,请勿必删除这一行,否则打开首页会出现死循环
RewriteRule ^()/indexhtml $1/indexphp [I]
#列表页伪静态规则
RewriteRule ^()/category/list-([0-9]+)html $1/plus/listphptid=$2 [I]
RewriteRule ^()/category/list-([0-9]+)-([0-9]+)-([0-9]+)html $1/plus/listphptid=$2&TotalResult=$3&PageNo=$4 [I]
#文章页伪静态规则
RewriteRule ^()/archives/view-([0-9]+)-([0-9]+)html $1/plus/viewphparcID=$2&pageno=$3 [I]
#搜索伪静态规则
RewriteRule ^()/searchhtml(:()) $1/searchphp$2 [I]
#TAG标签伪静态规则
RewriteRule ^()/tagshtml $1/tagsphp [I]
RewriteRule ^()/tags/()(:()) $1/tagsphp/$2 [I]
RewriteRule ^()/tags/()/(:()) $1/tagsphp/$2/ [I]
RewriteRule ^()/tags/()/([0-9])(:()) $1/tagsphp/$2/$3 [I]
RewriteRule ^()/tags/()/([0-9])/(:()) $1/tagsphp/$2/$3/ [I]
如果你的系统支持url重写,到这里就可以用伪静态访问了
第三步更改重写的URL
如果用默认的设置, 访问的URL是:
复制代码
代码如下:
http://wwwXXXXcom/plus/view-131-1html
这样的形色, 我们是可以更改这种样式的
找到文件/include/helpers/channelunithelperphp打开
可以看到有这样的语句
复制代码
代码如下:
return $GLOBALS["cfg_plus_dir"]"/view-"$aid'-1html';
这就是文章的url形色
$reurl = $GLOBALS['cfg_phpurl']"/listphptid="$typeid;
这是列表的重写url
可以使url更短一点,完成可以写成:
复制代码
代码如下:
return "/view-"$aid'-1html';
和
$reurl = "/list-"$typeid"html";
这时重写规则也要更新
复制代码
代码如下:
RewriteEngine On
RewriteRule ^list-([0-9]+)html$ /plus/listphptid=$1
RewriteRule ^list-([0-9]+)-([0-9]+)-([0-9]+)html$ /plus/listphptid=$1&totalresult=$2&PageNo=$3
RewriteRule ^view-([0-9]+)-1html$ /plus/viewphparcID=$1
RewriteRule ^view-([0-9]+)-([0-9]+)html$ /plus/viewphpaid=$1&pageno=$2
更进一步,还可以把view换成自己的任何词语,这也要把include/arcarchivesclassphp文件中的view也一样替换。
发布选项: 生成HTML 仅动态浏览 发文章的时候选一下也不多事。为了以后升级 尽量减少修改文件。
以下这没有试,大家按需要测试吧~~
修改数据库
将所有文档设置为“仅动态”,可以进入数据库管理中,执行下面命令:
复制代码
代码如下:
update dede_archives set ismake=-1
并将ismake的默认值设置为 -1即动态。
将所有栏目设置为“使用动态页”,可以进入数据库管理中,执行下面命令:
复制代码
代码如下:
update dede_arctype set isdefault=-1
DedeCmsTAG标签伪静态
DedeCms默认的TAG标签URL,形如/tagsphp/dedecms57/,非常之难看。打开/include/taglib/taglibphp,找到lib_tag()函数下的:
复制代码
代码如下:
$row['link'] = $cfg_cmsurl"/tagsphp/"urlencode($row['keyword'])"/";
替换为
$row['link'] = $cfg_cmsurl"/tags/"urlencode($row['keyword'])"/";
修改分页代码
我们需要修改include/arctaglistclassphp,将分页函数替换为:
复制代码
代码如下:
/ 获取动态的分页列表
@access public
@param int $list_len 列表宽度
@param string $listitem 列表样式
@return string
/
function GetPageListDM($list_len,$listitem="info,index,end,pre,next,pageno")
{
$prepage="";
$nextpage="";
$prepagenum = $this->PageNo - 1;
$nextpagenum = $this->PageNo + 1;
if($list_len == "" || preg_match("/[^0-9]/", $list_len))
{
$list_len = 3;
}
$totalpage = $this->TotalPage;
if($totalpage <= 1 && $this->TotalResult > 0)
{
return "<span class="pageinfo">共1页/"$this->TotalResult"条</span>";
}
if($this->TotalResult == 0)
{
return "<span class="pageinfo">共0页/"$this->TotalResult"条</span>";
}
$maininfo = "<span class="pageinfo">共{$totalpage}页/"$this->TotalResult"条</span>rn";
$purl = $this->GetCurUrl();
$basename = basename($purl);
$tmpname = explode('', $basename);
$purl = str_replace($basename, '', $purl)urlencode($this->Tag);
//var_dump($purl);exit;
//$purl = "/"urlencode($this->Tag);
//获得上一页和下一页的链接
if($this->PageNo != 1)
{
$prepage="<li><a href='"$purl"-$prepagenum'html>上一页</a></li>rn";
$indexpage="<li><a href='"$purl"-1html'>首页</a></li>rn";
}
else
{
$indexpage="<li><a>首页</a></li>rn";
}
if($this->PageNo!=$totalpage && $totalpage>1)
{
$nextpage="<li><a href='"$purl"-$nextpagenumhtml'>下一页</a></li>rn";
$endpage="<li><a href='"$purl"-$totalpagehtml'>末页</a></li>rn";
}
else
{
$endpage="<li><a>末页</a></li>rn";
}
//获得数字链接
$listdd="";
$total_list = $list_len 2 + 1;
if($this->PageNo >= $total_list)
{
$j = $this->PageNo - $list_len;
$total_list = $this->PageNo + $list_len;
if($total_list > $totalpage)
{
$total_list = $totalpage;
}
}
else
{
$j=1;
if($total_list > $totalpage)
{
$total_list = $totalpage;
}
}
for($j; $j<=$total_list; $j++)
{
if($j == $this->PageNo)
{
$listdd= "<li class="thisclass"><a>$j</a></li>rn";
}
else
{
$listdd="<li><a href='"$purl"-$jhtml'>"$j"</a></li>rn";
}
}
$plist = '';
if(preg_match('/info/i', $listitem))
{
$plist = $maininfo' ';
}
if(preg_match('/index/i', $listitem))
{
$plist = $indexpage' ';
}
if(preg_match('/pre/i', $listitem))
{
$plist = $prepage' ';
}
if(preg_match('/pageno/i', $listitem))
{
$plist = $listdd' ';
}
if(preg_match('/next/i', $listitem))
{
$plist = $nextpage' ';
}
if(preg_match('/end/i', $listitem))
{
$plist = $endpage' ';
}
return $plist;
}
0条评论