首页
关于本站
网站模板
代码教程
Emlog教程
米拓教程
SEO优化教程
Ecshop教程
zblog教程
Excel技巧
电脑软件教程
互联网
免费资源
网络新闻
留言咨询
在线问答
申请友链
网址导航
联系舍力
搜索
舍力
登录
搜索
舍力
静以修身。
累计撰写
1142
篇文章
累计收到
3504
条评论
首页
栏目
首页
关于本站
网站模板
代码教程
Emlog教程
米拓教程
SEO优化教程
Ecshop教程
zblog教程
Excel技巧
电脑软件教程
互联网
免费资源
网络新闻
留言咨询
在线问答
申请友链
网址导航
联系舍力
代码教程
2015-1-27
分享Emlog博客程序建站SEO优化技巧方法
之所以叫做简易优化指南,是因为emlog网站程序本身并不支持多么复杂的优化手段,比如说尽管5.0.0版实现了首页的网页标题和浏览器标题(也即title)分开设置,但栏目页和作者页还是老样子网页标题和浏览器标题只能一起弄。此外还有缺少二级分类支持啦、无法单独提取置顶和带图文章啦——修改数据库之类的主意就免了吧,可以的话咱尽量只动模板,实在不行稍微改动一下程序文件就够了。 假定大家都已经具备了最基本的修改模板技能,也就是说能够使用正确的网页编程软件(Dreamweaver、Notepad++、Editplus、EmEditor、UltraEdit皆可,实在不行emlog主题编辑插件也凑合,严厉禁止windows记事本工具)对网页文件进行简单修改,并且模板文件也已基本到位,这就拿起工具按照下面说的改吧。 一、网站title的优化 网站title在任何搜索引擎规则中都是大头,按说首页、列表页、文章页的title都是站长手工设置的,对于像祈雨其雨这样首页title简短的网站来说根本不需要过多纠结。但在现实中,很多站长偏爱给网站首页title设置一长串关键词组合,而emlog程序默认首页title为列表页和文章页title的后缀,导致页面title大量重复、关键词冲突。 针对这种情况,一般采取的方法是修改模板title,将header.php文件默认的<title><?php echo $site_title;?></title>替换成<title><?php echo isset($log_title)?$log_title:$site_title;?></title>。这样做可以解决文章页,但解决不了列表页。更为彻底的处理方法是去/include/controller目录修改一干XXX_controller.php文件中的相关字段。再处理/t/index.php文件。 Emlog程序默认的分页title都一模一样,造成很多同名页面,关键词冲突。不改内核、只通过模板解决的办法是写一个<?php echo page_tit($page); ?>函数放到header.php文件的title标签里,此函数需在module.php文件中定义:具体操作方法见 >>如何解决emlog列表分页标题相同的问题 二、禁止抓取某些页面 为了减轻蜘蛛抓取压力提高搜索引擎优化效率,原则上建议把不需要蜘蛛收录的页面统统设置成禁止抓取的形式。比如说归档列表这玩意,每天更新会变得无穷无尽,虽然博客用户很喜欢,但是“某年某月某日”这个关键词能带来多少有效流量呢?归档列表内的日志标题会不会与其他页面发生关键词优化冲突呢? 归档列表的主要入口,也就是日历组件的源代码位于/include/lib/calendar.php文件内,理论中rel="nofollow"标签能够阻止蜘蛛从这个入口爬进去,现在也有一种说法是它只能阻止权重传递但无法阻止蜘蛛爬行。在robots.txt文件中配置disallow标签可以阻止搜索引擎收录,但无法阻止抓取,也就意味着减轻蜘蛛抓取压力的作用十分有限。还有一桩大麻烦,robots.txt容易泄露网站后台地址,原本出于安全目的禁止搜索引擎收录的设置反而会出卖自己。 试试在模板头部加入<meta name="robots" content="none">标签,这是一个禁止搜索引擎检索本页或跟踪该页任何链接的命令。目前emlog后台管理模板采用的是<meta name="robots" content="noindex, nofollow">标签,noindex表示拒绝索引本页但可跟踪该页链接nofollow是禁止跟踪链接,加起来正好是none的效果。给各位提个醒,目前后台登录模板login.php文件还没配置这个标签。 三、面包屑导航 为文章页设置面包屑导航非常简单,把<a title="返回首页" href="<?php echo BLOG_URL; ?>"><?php echo $blogname; ?></a> >> <?php blog_sort($logid); ?> >> <?php echo $log_title; ?>贴进echo_log.php文件一切搞定。列表页的面包屑导航比较麻烦,log_list.php文件不仅得负责分类列表,通常情况下还得担负首页、标签、归档、搜索的种种列表职能,每种列表页面对应的获取当前页面方式都不一样。 这里介绍一种比较通用的log_list.php设置面包屑导航方式:详情见 >>Emlog5的各种标签集合,只分享一些常用的标签函数 四、完善分类置顶 Emlog程序默认首页文章置顶,而列表页还是按照日期排序。有些人是需要分类置顶功能的,模板制作的时候的确可以用top='y'语句把置顶日志单独提取出来,但是需要在module.php文件里面定义一大堆,所以还是改程序文件算了。 让我们回到/include/controller目录,打开sort_controller.php文件,搜索到$sqlSegment = "and sortid=$sortid order by date desc";将其修改为$sqlSegment = "and sortid=$sortid order by top DESC ,date desc";即可获得分类置顶效果。有些CMS模板需要在module.php文件中定义分类列表组件,适当“top DESC ,”就能让置顶文章跑到最前面。 五、规范访问路径 原则上一个网页只能有一个访问路径,复数个访问路径会被搜索引擎视为重复页面,轻则分权重则K站。最典型的莫过于顶级域名和www域名的301重定向问题。这里强调一下,301重定向是一定要做好的,不仅如此,emlog后台设置中的网站地址也一定要写好,如能在模板header.php文件所对应的网页头部加入<base href="<?php echo BLOG_URL; ?>" />标签就更好了。 还有一个小问题,用惯emlog的朋友们可能早已发现了,就是文章页面访问路径可变。举例来说,本文的正确访问路径应该是/post-189.html,但是换成/post/189.html甚至于/seo/189.html这些根本不应该存在的路径同样可以访问,同一文章页出现了多个访问路径。解决的办法是给文章页面设置canonical标签,对搜索引擎强调网页规范访问路径。 请将以下代码写入模板module.php文件中加入 <?php //文章访问路径标准化 function gf_url($id){ if ($id){echo '<link rel="canonical" href="'.Url::log($id)."\" />";} }?> ,再将<?php echo gf_url($logid);?>添加到网页头部
2015年1月27日
11371 阅读
4 评论
Emlog教程
2015-1-27
Emlog博客程序模板调用首页index.php文件的方法
Emlog#默认的模板文件是没有index.php的,而是用log_list.php这个博客列表页作为首页模板。增加index.php模板作为首页的方法很简单,只需要在log_list.php顶部增加一段代码即可。如下: <?php if($pageurl == Url::logPage()){include View::getView('index');exit;}?> 然后在模板文件中建立一个index.php文件即可,当然你也可以把index.php改成其他的名称,只需要把上面代码中的index改成你自己修改的就可以了,内容就自己慢慢捣鼓了,想实现一些功能可以参考>>Emlog教程
2015年1月27日
8706 阅读
3 评论
Emlog教程
2015-1-27
让Emlog导航栏的地址更简洁一点
自从Emlog升级到5.0版以后,后台的管理与设置就变得更简单和高效了,特别是新增加的“导航”功能,更是让导航栏的定制变得极其简单。不过稍微细心一点的EMER肯定会注意到,所有导航中添加的的自建页面、分类以及自定义导航(即原来的链接地址),都是一个带有“http://”的完整的地址,与系统本身的碎语和管理页面的地址相比,要长了许多,显得不够简洁。 那么,能不能让这些自己增加的除自定义导航(一般都是站外链接)之外的导航栏目也像碎语或管理页面那样,直接使用短地址,从而将博客安装路径那一大串字符省略呢?如下图所示: P.S. 若自定义导航是站内链接,也可作相同处理 初看似乎是可以的,在首页访问各个页面也没有错误。但是,当我们不是在默认的首页,而是在其它页面访问导航栏上的各个栏目时,问题就来了,此时访问的实际地址为当前页面的地址后面加上后台所设置的跳转地址。比如我如果访问了本站的“原创”标签,马上再点“留言”,结果访问地址变成了“http://www.shuyong.net/tag/gbook.html”,将进入错误页面。 难道此路行不通?先不要着急,其实我们只要对模板再作一点小小的修改,完全可以访问这种短地址。下面是关键:打开自己正在使用的模板中的 module.php 文件,找到 $value = $value == 'y' ? BLOG_URL . $value : trim($value, '/'); 一句,将其替换为如下语句: if (!strstr(strtolower($value),'http://')){ $value = BLOG_URL . $value; } 这样就可以了。现在,不论从什么页面访问导航栏,都不会再出错了。而且,这样做还有一个额外的好处,如果我们使用了多域名的代码(可参考本博《Emlog程序实现多域名全站访问的方法》一文),在用其它域名访问同一个网站的时候,访问导航栏上的栏目也不会再跳回到原来的域名了。 不过,要特别指出的是,如果你后台的导航使用了这种短地址,在更换模板之后,一定要记得对新使用的模板也要作同样的修改。
2015年1月27日
12093 阅读
0 评论
Emlog教程
2015-1-26
不修改emlog内核实现博客分页自定义的方法分享
以前有分享过 emlog修改分页样式(分页函数)方法总结的方法,今日给大家分享是不修改emlog内核实现博客分页自定义的方法,其实在代码上和以前相差不了多少;下面是详情教程:首页找到模板的module.php并在其最后加入如下代码: <?php //分页函数 function sheli_fy($count,$perlogs,$page,$url,$anchor=''){ $pnums = @ceil($count / $perlogs); $page = @min($pnums,$page); $prepg=$page-1; //shuyong.net上一页 $nextpg=($page==$pnums ? 0 : $page+1); //shuyong.net下一页 $urlHome = preg_replace("|*page|","",$url); //开始分页导航内容 $re = ""; if($pnums<=1) return false; //如果只有一页则跳出 if($page!=1) $re .=" <a href=\"$urlHome$anchor\">首页</a> "; if($prepg) $re .=" <a href=\"$url$prepg$anchor\">前页</a> "; for ($i = $page-2;$i <= $page+2 && $i <= $pnums; $i++){ if ($i > 0){if ($i == $page){$re .= " <span>$i</span> "; }elseif($i == 1){$re .= " <a href=\"$urlHome$anchor\">$i</a> "; }else{$re .= " <a href=\"$url$i$anchor\">$i</a> ";} }} if($nextpg) $re .=" <a href=\"$url$nextpg$anchor\">后页</a> "; if($page!=$pnums) $re.=" <a href=\"$url$pnums$anchor\" title=\"尾页\">尾页</a>"; //下拉跳转列表,循环列出所有页码 $re .=" 跳转到第 <select name='topage' size='1' onchange='window.location=\"$url\"+this.value'>\n"; for($i=1;$i<=$pnums;$i++){if($i==$page) $re .="<option value='$i' selected>$i</option>\n"; else $re .="<option value='$i'>$i</option>\n";} $re .="</select> 页,共 $pnums 页"; return $re;} ?> 列表页调用方法(即log_list.php页): <?php echo sheli_fy($lognum,$index_lognum,$page,$pageurl);?> 微语页调用方法: <?php echo sheli_fy($twnum,Option::get('index_twnum'),$page,BLOG_URL.'t/?page=');?>
2015年1月26日
12987 阅读
0 评论
Emlog教程
2015-1-23
分享Emlog文章日期显示时间及星期的方法
在进行模板文件代码修改的时候,最好使用编程软件,建议不要使用记事本进行编程,不然有可能出现乱码的哦~~不说废话了,以下的详细操作步骤:以默认模版为例在log_list.php找到 <?php echo gmdate('Y-n-j', $value); ?> 替换为 <?php $weekarray=array("日","一","二","三","四","五","六");echo gmdate('Y年n月j日 G:i', $value);echo" 星期".$weekarray)];?> 如果是内容页请使用下面代码,以默认模版为例在echo_log.php找到 <?php echo gmdate('Y-n-j', $date); ?> 替换为 <?php $weekarray=array("日","一","二","三","四","五","六");echo gmdate('Y年n月j日 G:i', $date);echo " 星期".$weekarray;?> 本方法5.3.1测试正常,其他为做测试,如有疑问请在本页留言反馈!
2015年1月23日
11733 阅读
1 评论
Emlog教程
2015-1-22
实现EMLOG用户登录才可以查看文章的方法分享
实现EMLOG实现用户登录才可以查看文章,当用户为游客时无法查看文章;只有注册登录后才有权限查看文章,其实这个功能实现起来是相当简单的;三行代码即可搞定,在echo_log.php中找到<?php echo $log_content; ?>替换为 <?php if(ROLE == ROLE_VISITOR): ?> 本文只有登录后的用户才能查看,请登录后查看 <?php else: ?><?php echo $log_content; ?> <?php endif; ?> 本文5.3.1中测试正常,其它版本未做测试,如有疑问请本页留言反馈!
2015年1月22日
10186 阅读
5 评论
Emlog教程
2015-1-21
EMLOG教程 - 侧边栏文章标题字数修改方法
本站在修改侧边栏的时候,进行了侧变栏内容固定浮动跟随浏览器,但是问题来了,固定浮动侧边栏之后随机文章的比较长的标题会凸出去外边、或者两行显示,感觉很难看的样子,所以寻找办法修改标题字数使之截断过长的标题! EMLOG博客侧边栏最新日志标题字数修改方法,博客网站程序使用EMLOG,有一些地方想按自己的要求修改修改,好让博客更加美观整洁,其中有一处就是想把侧边上的最新日志、热门日记和随机日志控制字数。侧边栏日记标题太长我想改短一点,网站后台没有设置,也没有插件可以使用,其实这个可以修改程序模板文件解决的。需要修改什么代码才能截断标题字数?有两个方法。 一、找到侧边栏文件:模板文件module.php(以默认主题为例): <li><a href="<?php echo Url::log($value); ?>"><?php echo $value; ?></a></li> 修改替换为: <li><a href="<?php echo Url::log($value); ?>" title="<?php echo $value; ?>"><?php echo subString(strip_tags($value),0,10); ?></a></li> 上面的数字10是字符数,按自己需要的宽度自行修改,记住是修改10那个数字为最适合自己网站的长度。侧边栏的其他栏目字数修改方法同上,这里就不多说了,希望能够帮到大家。 二、用css控制,直接在css中设置一个高度,然后防止溢出就ok了,自己慢慢倒腾吧,就不细讲了。
2015年1月21日
8744 阅读
1 评论
Emlog教程
2015-1-19
分享emlog调用各分类栏目标题、描述、别名及发布的文章数
自定义调用分类标题和描述代码,特地分享出来以方便大家开发出功能更多、更加人性化的主题来,废话不多说了,以下的是操作方法:首先我们在modul.php文件中加入一个自定义函数,代码如下: <?php //自定义输出分类标题及分类描述 function index_sort($sid){ global $CACHE; $sortid = explode(",",$sid);//分割数组 $sort_cache = $CACHE->readCache('sort'); $title = $sort_cache;//分类标题的代码 $lognum = $sort_cache;//发布的文章数 $description = $sort_cache;//分类描述的代码 $cname = $sort_cache;//分类别名的代码 ?> <li><h3><a href="<?php echo Url::sort($sid); ?>"><?php echo $title; ?></a>(<?php echo $lognum;?>)<span><?php echo strtoupper("$cname"); ?></span></h3> <p><?php echo $description; ?></p></li> <?php }?> 其次,在需要调用的地方直接键入如下代码就可以轻松调用了 <?php echo index_sort(1); ?> 说明:上面代码中的1是代表的分类栏目的id号,至于这个怎么看就不需要我再说了吧!其实就是分享给一串代码而已! 当然,以上代码只能在5.3以上版本中使用,以前的版本未做测试,个人感觉应该不行!不过朋友们可以看下!
2015年1月19日
13072 阅读
4 评论
Emlog教程
2015-1-19
如何在emlog首页第N篇日志下面加上广告
如何在emlog博客首页第几篇日志下面加上广告?emlog判断是否是第一篇日志后加AD的方法。效果:首页添加一个广告放在博客首页第2篇日志简要的下面(PS:本方法以默认模版为例,其他模版请根据当前自行修改添加) 操作方法步骤: 第一步:在log_list.php中找到代码 foreach($logs as $value) 修改为 foreach($logs as $key=>$value) 第二步:在文章循环里面加入如下代码 <?php if($key == 1){ ?>广告代码<?php } ?> 其中的"1"表示第二篇文章下面
2015年1月19日
9170 阅读
4 评论
Emlog教程
2015-1-19
Emlog评论显示楼层的方法
如何实现评论显示楼层?几楼几楼的样子。这个方法是我在动点那里看到的,我感觉很不错,虽然说EMLOG的博客程序是属于开源的程序,但是对于我们这些菜鸟来说开源的还不够,哈哈。因为不懂什么代码,所以好多的东西都是拿人家的来用的。东拼西凑给补补丁丁 ,补起来的。看起来我的站点的模版很不错,其实都是借用人家的成果来用的。好了,不多说了,切入正题。 在一些模版中加入一些楼层的样式是很不错的。按照原文说:其实很简单实现的。 在你的主题module.php文件中的评论列表函数找到,以下以默认板子为例: 1、找到 function blog_comments($comments){ 替换为如下代码: blog_comments($comments,$params){ 2、然后在找到“$isGravatar = Option::get('isgravatar');”并在后面添加代码: $comnum = count($comments);foreach($comments as $value){if($value != 0){$comnum--;}} $page = isset($params)?intval($params):1; $i= $comnum - ($page - 1)*Option::get('comment_pnum'); 3、然后找到尾部的<?php endforeach; ?> (注:是评论列表的最后)替换为<?php $i--;endforeach;?> 4、调用代码为:<?php echo $i; ?>,放入你想要实现的位置,这样的话就能显示评论里面的楼层了,具体样式见本站留言板。 5、最后把echo_log.php和page.php两个文件中调用评论的函数<?php blog_comments($comments);>改为<?php blog_comments($comments,$params); ?> 调用代码为:<?php echo $i; ?>,放入你想要实现的位置,这样的话就能显示评论里面的楼层了,具体样式见本站留言板。 小技巧:为了追求极致效果还可以在调用楼层的地方加个判断语句来个沙发地板之类的显示 <?php if ($i == 1){ echo "沙发<sup>#</sup>";} elseif ($i == 2){echo "板凳<sup>#</sup>";} elseif ($i == 3){ echo "地板<sup>#</sup>";} else{ echo $i.'<sup>楼</sup>';}?> 本段代码与本文无关 $i=1;<?php echo $i;$i++;?>
2015年1月19日
10181 阅读
2 评论
Emlog教程
2015-1-17
Emlog的各种标签集合,只分享一些常用的标签函数
本文简单分析emlog5下的模板基本结构以及基本变量、函数的作用,详细了解本文,有助于更快掌握emlog5的模板开发基础。emlog的模板位于安装目录content\templates\文件夹下,每个模板都是一个单独的文件夹,文件夹以模板名字命名。通过后台上传安装的模板都保存在这个目录下。 公共标签: 通过预览整个模板中的各个文件,你会发现以下代码同时存在于多个文件中,这些代码分别有以下用途: if(!defined('EMLOG_ROOT')) {exit('error!');} 此行代码存在于模板目录下的每个php文件起始部分(事实上为了安全起见,该行代码也在admin目录下的几乎所有php文件起始部分存在),其作用是防止代码所在的php脚本被直接访问执行。 require_once View::getView('side'); require_once View::getView('footer'); 这两行代码存在于log_list.php、echo_log.php、page.php、t.php里面,其作用是调用模板文件夹下的side.php和footer.php的代码到当前文件的当前位置。View是emlog的模板视图控制器,View::getView('文件名','文件后缀')将返回当前模板安装路径下对应的文件。getView函数的第二个参数为缺省参数,在不传入值的情况下,将默认作为.php文件后缀返回文件路径。 注意:关于各页面的判断方法请参考《emlog各种判断页面代码大集合》 当前日志页相关标签 标题:<?php echo $log_title;?> 日志链接:<?php echo Url::log($logid);?> 日志ID:<?php echo $logData;?> 发布时间:<?php echo gmdate('Y-n-j', $value);?> 所属分类:<?php blog_sort($logid);?> 文章作者:<?php blog_author($author);?> 浏览量:<?php echo $views;?> 评论数:<?php echo $comnum;?> 置顶标记:<?php topflg($top);?> 判断评论开启:<?php if($allow_remark == 'y'){?>评论开启时才显示<?php }?> 当前列表页相关标签 当前分类标题:<?php echo $sort_cache;?> 当前分类别名:<?php echo $sort_cache;?> 当前分类文章数:<?php echo $sort_cache;?> 当前分类描述:<?php echo $sort_cache;?> 分开列表页与首页标签:<?php if($pageurl == Url::logPage()){?>首页内容<?php }else{?>列表页内容<?php }?> 日志链接:<?php echo $value;?> 日志标题:<?php echo $value;?> 发布时间:<?php echo gmdate('Y-n-j', $date);?> 摘要字数:Option::get('excerpt_subnum') 可替换下面的200 日志摘要:<?php echo $value;?>(字数后台控制);如果实现去掉html代码请使用<?php echo subString(strip_tags($value),0,200);?>标签,200表示字符数 <?php echo subString(strip_tags(str_replace("\n"," ",$value)),0,200);?> 过滤回车空格 日志id标签:<?php echo $value;?> 日志标签:<?php blog_tag($value);?> 评论数:<?php echo $value;?> 浏览量:<?php echo $value;?> 判断评论开启:<?php if($value == 'y'){?>评论开启时才显示<?php }?> 面包屑导航,放入log_list.php中 <a href="<?php echo BLOG_URL; ?>" title="返回首页">首页</a> » <?php if ($params=='sort'): ?><?php global $CACHE; $sort_cache = $CACHE->readCache('sort'); ?> <?php $pid = $sort_cache;?> <?php if($pid != 0):?> <a href="<?php echo Url::sort($pid); ?>"><?php echo $sort_cache; //父分类?></a> » <a href="<?php echo Url::sort($sortid); ?>"><?php echo $sort_cache; //子分类 ?></a> <?php else:?><a href="<?php echo Url::sort($sortid); ?>"><?php echo $sort_cache; //分类 ?></a><?php endif;?> <?php elseif ($params=='author'): ?><a><?php echo blog_author($author);?></a> <?php elseif($params=='keyword'):?><a><?php echo urldecode($params);?></a> <?php elseif ($params=='tag'):?><a><?php echo urldecode($params);?></a> <?php elseif($params=='record'):?><a><?php echo substr($params,0,4).'年'.substr($params,4,2).'月';?></a> <?php endif; ?> 当前页评论数:<?php echo $comnum;?>
2015年1月17日
20167 阅读
6 评论
Emlog教程
2015-1-13
EMLOG实现图片防盗链的方法(伪静态实现)
用于防范emlog附件图片被其它网站盗链,本代码来源于em论坛,由qiukong编辑撰写,舍力测试可正常运行,现再次分享给大伙,代码如下: RewriteEngine on RewriteBase /content RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !shuyong.net RewriteCond %{HTTP_REFERER} !so.com RewriteCond %{HTTP_REFERER} !soso.com RewriteCond %{HTTP_REFERER} !sogou.com RewriteCond %{HTTP_REFERER} !baidu.com RewriteCond %{HTTP_REFERER} !bing.com RewriteCond %{HTTP_REFERER} !google.com RewriteRule .*\.(jpg|jpeg|png|bmp|gif)$ http://www.shuyong.net/daotu.gif 在你的主机根目录新建文件.htaccess,加入上面的内容。(如果开启了伪静态已经有.htaccess,就把2~4行粘贴到</ifmodule>前面即可) 然后代码要进行一些修改,其中“shuyong.net”改为你的网站域名,“http://www.shuyong.net/daotu.gif”改成盗链网站显示的图片。 该代码可防止content目录一切图片被盗链,如模板、附件等等。
2015年1月13日
8660 阅读
6 评论
Emlog教程
20
21
22
23
24