日志

终于找到原因:wordpress因模板损坏而导致网站不能访问

由于先前的模板真的是用了很长一段时间,再优秀也有审美疲劳,所以打开升级模板。升级模板时难免会对模板代码进行了些DIY,以适用自己的博这客和特点。但修改完之后,登陆后台时,突然发现一直停在“正在等***响应”。返回前台首页,也表示网页无法打开。网上找了很多办法,无一不以失败告终。没办法了,只好向空间商求助。因为前几天空间服务器频频出问题,阿柯就怀疑会不会是空间本身的问题呢?

联系客服之后,客服说我的博客吃内存,吃到了1G的内存,还说YISOU在抓取我的博客。我觉得搜索引擎抓蜘蛛进行收录是很正常的行为呀。客服又说可能是垃圾评论的问题。我登陆数据库查看,的确很多垃圾评论。手动删了一晚上,把100M的数据库删得只剩下不到3M,可想而知当时的垃圾评论有多少万条。但很快就证明,并不是垃圾评论的事。因为我清好垃圾评论之后,问题仍然得不到解决。

再次联系客服,客服说福建的IP在访问的我博客。说把福建地区的一些IP段给禁了。她的意图我明白,还是以为福建有垃圾评论在我博客发布,最终还是回到吃内存这个认识上。但她加大内存后,我仍然打不开页面。清除COOKIE之后,前台可以打开,但一登陆后台就抽风。偶尔登陆进后台,不到一分钟,立即断开,重新回到打不开页面的情况。

这样来来回回折腾了一整天,问题仍然得不到解决。想想当时的心情,真的跌到冰点。打不开博客,登陆不了后台,意味着很多日志和评论都无法备份。想想自己这么多年经营的博客,记录着自己生活、学习、工作的点点滴滴,真的就在今年消失?或者又得重头再来?

昨晚大雨,出不了街。原先想买的东西都只好在网上买了。拍完支付好之后,就再搜索解决博客无法访问,无法登陆后台的原因。突然有一篇日志启发了我,一位曾经遇到过这种情况的博友分享他的解决办法说,进FTP把插件目录重命名,然后以插件目录文件名新建一个空文件夹。如果能登陆后台,则证明是插件问题。如果不行,再试试模板目录。尝试了不是因为插件的问题后,我把模板目录下的模板文件夹全转出模板目录,也就是说相当于删除所有的模板。wordpress有个特点,删掉模板后,前台页面不能显示,但登陆后台没问题。一试,天呐,真的是模板问题导致的!!果然进入后台,上传新的模板文件,再修改,设置,问题解决!!

给wordpress加密日志添加密码提示

wordpress自带的日志加密功能比较人性化,但不好的是,没有密码提示。阿柯的几个带有相片的日志加密后,时间久了,自己都差点忘了当初是什么密码了。如果真忘了,又得进后台,使日志进入修改编辑状态才能查看到密码,很不方便。

搜索了一下,发觉可以通过Wordpress自定义域给加密的文章添加密码提示信息。方法很简单,把下面的代码加入到主题目录的function.php中:

//密码保护提示
function password_hint( $c ){
global $post, $user_ID, $user_identity;
if ( empty($post->post_password) )
return $c;
if ( isset($_COOKIE[‘wp-postpass_’.COOKIEHASH]) && stripslashes($_COOKIE[‘wp-postpass_’.COOKIEHASH]) == $post->post_password )
return $c;
if($hint = get_post_meta($post->ID, ‘password_hint’, true)){
$url = get_option(‘siteurl’).’/wp-pass.php’;
if($hint)
$hint = ‘密码提示:’.$hint;
else
$hint = “请输入您的密码”;
if($user_ID)
$hint .= sprintf(‘欢迎进入,您的密码是:’, $user_identity, $post->post_password);
$out = <<<END
<form method=”post” action=”$url”>
<p>这篇文章是受保护的文章,请输入密码继续阅读:</p>
<div>
<label>$hint<br/>
<input type=”password” name=”post_password”/></label>
<input type=”submit” value=”输入密码” name=”Submit”/>
</div>
</form>
END;
return $out;
}else{
return $c;
}
}
add_filter(‘the_content’, ‘password_hint’);

然后在写文章时添加自定义栏目password_hint,在“值”一栏给输入密码提示信息,如:某某人的生日是几号?如果你写日志时没有“自定义栏目这一选项,则可以在写文章页面的右上方“显示选项”里找到“自定义栏”,打勾就可以看到了。

自动摘要存在缺憾,重新使用默认的more标签

之前使用自动摘要代码,感觉很方便。但使用新主题,在测试加密日志时,发现加密日志也被自动显示摘要。能显示了,加密就失去意义了。期间也上主题发布者的博客留言求助,可怜得不到有效的回复。期间也看到威言威语的主题中,有自动摘要,他更改过代码之后,可以使加密日志不显示摘要。但本人去求助时,也没有得到解决代码,只是一个修改建议。

自动摘要把加密日志显示摘要问题得不到解决,感觉心有不甘。毕竟,某些日志只想对部份熟悉的人开放,就只能使用加密日志了。回头看看现用主题的发布者博客,他竟然也没有使用自动摘要代码,而是手动加入more标签实验。慢慢想想,这手动加入more的方法虽然看似麻烦,但优点也非常突出。比如可以很灵活地截取想要输出的段落作为摘要,而且输出的摘要还可以保持日志的原格式。这点本人非常喜欢。因为本人博客经常会发一些高中化学常用考点解析,日志用经常会用到化学符号和方程式这些,摘要保持编辑格式输出是非常必要的。而自动摘要,则基本都是根据字段截取,没有保留原格式。

思前想后,兜来转去,还是觉得more标签更好。结果是花了点时间,将500多篇的日志手动加入more标签。

在此之时,还给加密日志弄了个密码提示和长日志加了分页代码。至此,本轮的主题折腾又告一段落了。

让wordpress自定义菜单在新窗口打开的方法

今晚休息,继续折腾一下博客。本想找一款新主题的,满意的要收费,免费的还比不上目前这款来得称心。所以决定花点小时间,完善一下目前这款主题。

在后台给主题添加微博的菜单链接时发现,点击打开微博,还是在原窗口打开。这很不好,因为微博链接属于外链,应该在新窗口打开才适合。苦苦查找,竟然没有找到添加菜单时有链接打开选择这一项。感觉不大可能吧,wordpress功能这般强大的程序,竟然连这种人性化的选择都没考虑到??感觉不可能,继续搜索答案。终于发现问题所在!

原来在菜单设置这里,右上角有个显示选项,里面默认并没有勾选“链接目标”这一项,所以平时都是隐藏起来的!勾上以后,就可以在添加菜章里进行设置了!

博客再度搬家

一年前使用万网的主机也快到期了,思考了良久决定入口啤不错的衡天主机。购买很顺利,选择了促销中的韩国主机,速度很不错,还可以放三个网站。第一次使用衡天的主机,花了足足一天的时间才把博客搬过去,也顺便在狗爹把域名给续费了。

搬博客时出了点小差错。由于当时全站备份下来时,后台CSS的文件竟然没下载,只是一个空文件夹,致使后台功能显示不全。因为后台功能显示不齐,多是因为浏览器版本太低的问题。但自己搬家之前一直都是正常的啊。为此自己又把WP重新上传安装,还是一样。最后在WP博友群里,一位博友提醒我看看后台CSS有没有加载。一语惊醒梦中人,一查看,结果还真是后台CSS文件夹是空的!果断上传,一切正常!

搬好博客之后,突然觉得这模板使用太久了,需要换套衣服穿穿。想换时才发现主题文件夹里就两个主题。只好上网搜索一下了。大前端的D7收费的,爬屎!威言威语的自用的新主题不错,但没有放出来,旧主题不想用,再爬屎!最后选择了Prower5,继续简约风格。以前用过P2好像,也是冲着它的简单而来的,现在的P5感觉更帅。换上后,没多改代码,就是搞了首页自动摘要和添加了一下菜单,把底部的广告给去掉就OK了。超省事!希望这套简约风格能赔我走过一段美好的时光。

使用了wordpress数据库清理插件WP-Optimize

在使用WordPress每次新建页面或文章时侯免不了要修改这些页面的内容,假如你多次修改文章,会产生一些冗余的数据,本来是WP的一个功能防止大家修改失误用于还原备份,但每次修改就会产生备份并且会占据你的MySQL空间。例如:你的一篇文章占用100KB数据库空间,你修改5次的话,这篇文章占用的空间就会上升,变成了500KB,如果你有100次类似的操作的话,那么,你就有50M的空间被白白的浪费掉了。

所以定期清理你博客的数据库一方面可以节省数据库空间,另一方面可以使你的wordpress运行得更快。对于MYSQL数据库高手来说,登陆数据库管理面板后,使用简单的命令就要可轻易地清理你的数据库里冗余的数据了。但对于阿柯这样的小白来说,还是使用插件更方面。搜索了一下,发现WP-Optimize比较好用。它可以全自动一建优化和删除那些存在于数据库中的垃圾数据,让你不用在进入网站后台用PHPmyadmin 删除垃圾。

插件虽然是英文的,但阿柯这种对英文只是懂几个字母的人都看得明白。

界面显示的英文功能菜单如下:
Database Optimization Options (数据库优化选项)
Remove all Post revisions (删除文章备份数据及删除页面修正版本的所有内容)
Clean marked Spam comments (删除垃圾留言)
Clean Unapproved comments (删除所有未审核的留言)
Optimize database tables (优化数据库中的表)
Security Tools (安全工具,及重命名发帖用户)
Old username (老用户名)
New username (新用户名)
Database Tables Report (数据库报告)
Database Name: ‘数据库名’
Optimization Possibility: (大约会优化多少)
Total space can be saved: (共有空间可节省:XXX)
WP-Optimize 可以很直观的给出你想要的结果,并且安全可靠对菜鸟来说肯定是必备工具,且效果也很好,推荐大家试用。

今晚关闭wordpress 3.x版本后台更新提示

wordpress的更新频率真的快,特别是插件,后台频频提示更新。但阿柯认为wordpress目前版本和插件完全能满足自己的使用需求。程序和插件的更新本来是好事,但每次升级或更新阿柯都得非常担心,担心插件升级后出现不兼容、担心程序升级后主题也不兼容。所以阿柯目前认为没有必要再升级Wordpress版本或者插件了。既然不想再升级了,后台的升级提示就显得多余,并且影响自己后台操作体现。因此,关闭wordpress后台更新提示就显得很有必要了。

网上搜索一上,方法大至有下面几种:

方法一:用CSS隐藏Wordpress更新提示

修改css,隐藏这个DIV的盒子,从而达到去除Wordpress更新提示功能的目的。
具体做法:通过工具打开wp-admin/wp-admin.css,搜索:

update-nag

在属性里面添加:display: none;

方法二:修改源代码去除Wordpress更新提示

直接删除相关的代码。这个针对性很强,不会牵扯到其他的功能。
具体步骤:删除/wp-admin/includes/update.php 文件中的更新提示代码:

echo “<div id=’update-nag’>$msg</div>”;

方法三:

使用插件,禁止WordPress程序提示功能。
Disable WordPress Core Update

以上三种简单的方法中,前面两种阿柯都在自己的3.3.1版本测试过,根本不起作用(有兴趣的朋友可以测试一下)。第三种是使用插件的,因为不想再增加插件使用数量,没有测试。阿柯最后是使用在使用主题的functions.php文件中添加如下代码实现关闭wordpress更新提示功能的:

add_filter('pre_site_transient_update_core',    create_function('$a', "return null;")); // 关闭核心提示
add_filter('pre_site_transient_update_plugins', create_function('$a', "return null;")); // 关闭插件提示
add_filter('pre_site_transient_update_themes',  create_function('$a', "return null;")); // 关闭主题提示

以上代码是把wordpress程序更新提示、主题更新提示和插件更新提示都关闭了的,可根据自己的需要进行删减。关闭掉更新提示之后,你是否发觉进入后台的速度明显加快了呢?不想更新wordpress的朋友赶快试试吧。

一句代码关闭wordpress自动保存和修订版本

wordpress自动保存和修订版本主要的作用想必是写博写到一半时,突然断电或者什么原来停止时,我们可以利用自动保存和修订版本找回未写完的文章。虽说很安全,但是却很容易造成数据库出现大量冗余。你写文章的时候越长,产生的修订版本就越多。你可以编辑你的某一篇文章看看,下面有四五条正文数据,其中只有一条会在前台显示,另四条成为冗余数据白白占用宝贵的数据库空间。

虽然自动保存和修订版本有一定的安全性,但我还是觉得此功能对我无用。我能坚持把文章写完就不错了,更何况还是一大篇,这样的可能性几乎为零。所以取消自动保存和修订版本功能,还数据库一个干净的空间就成了一种很迫切的要求。

网上关闭自动保存和修订版本的方法很多,但步骤在少,修改起来麻烦,也不知道会不会出错。阿柯找了一下,其实可以用一小段代码就可以把关闭wordpress自动保存和修订版本。

remove_action('pre_post_update', 'wp_save_post_revision' );
add_action( 'wp_print_scripts', 'disable_autosave' );
function disable_autosave() {
	wp_deregister_script('autosave');
}

把以上这段代码放到functions.php里就行了,简单吧?阿柯亲自测试一下写新文章,果然不会自动保存修订版本了。赶快试试吧

给博客换上这款很丑的国外主题,博友们都很不解

也不知道是一时冲动还是真的下了决心,原本不再打算更换主题的阿柯在测试现在这款主题时突然间就给换上了。更换主题后,到访的博友都大为不解,直乎这主题太丑了,根本比不上上一款主题。对此,阿柯倒不是很在意。毕竟,漂亮不是我追求的第一因素。

说说阿柯突然给wordpress换上这款国外主题的原因吧。主要因素还是出于这款国外主题对谷歌广告的友好。广告在显示的时候,不需要预先把广告的字体颜色设为与博客一样就会自动匹配。后台有几种不同的颜色搭配的版面,谷歌广告可以根据你选择的版面颜色自动匹配。这点真的很贴心,不用在使用其它主题时,为了谷歌广告能与文章融合,需要在CSS里苦找字体和链接的颜色方案。并且主题还可以对谷歌广告随机显示,文章内的广告位置也可以随页面刷新而变换。这种设计,一定程度上可以防止防客对固定广告位置而出现的麻木。所以这主题也被设计者自称为谷歌广告点击率主题。说能带来高点击率,阿柯暂未体现,毕竟自己博客的来访量还不够100IP,现在谈广告点击率很傻、很天真……

不过这主题的这种广告显示设计的确给阿柯带来了新鲜感,这可能就是阿柯突然间就决定换上它的原因。至于国外主题样子的丑,阿柯并不介意,素颜也是另一种美。并且阿柯发现,很多国外的网站,版面都普通得跟丑没什么分别。对比国内很多网站,特别是个人网站,绝大多数把版面好看为一关键设计方向。人家国外涻好相反,这也并不是人家没有设计漂亮的技术,只是追求的角度不一样吧。设计得简单一点,丑一点,应该也是有它道理的吧。

这款主题在发布文章时,有Meta Description日志页面描述和Meta Keywords关键字这些SEO元素的自定义选项。记得很多博友都用SEO插件实现这种功能,这样会不会在搜索引擎里有好的表现呢?这是阿柯目前最期待的一点。

这款主题除了广告显示这点友好外,其它都很简单。则栏就使用wordpress自带的最新日志和最近评论、功能模块。阿柯花了不少时间,给这主题加了日志列表自动截取文章字数作为摘要,修改了自带的最新评论显示评论文章改为显示评论内容;留言者网站链接新窗口打开;则栏最新评论不显示管理员评论。至于日志内的点击数,评论数,分类目录都没有加入。阿柯觉得那些都不重要,毕竟日志的点击和来量在统计代码里可以知道。还有博友提到的顶部没有留言、友链申请等菜单,这也不打算加入了,就在则栏里加入个分类目录。就让顶部习惯的菜单让谷歌链接广告代替吧,或许可以让第一次来访的访友送一个误点,呵呵……

就这样吧,期待这款主题能带来惊喜,祝阿柯好运吧!

让评论留言链接在新窗口打开

wordpress自带的和个别主题的评论留言链接都是要原窗口打开的,这样很不好。阿柯认为,我们应该尽一切方法对用户展示我们的博客,使博客能很大程度增加曝光度。别人在通过新窗口打开新的链接,而原来的网页并没有关掉,也许读者不会立即关掉,可能会再寻找一些他们需要的东西,这样就增加了博客的PV。

阿柯把在网上搜索整理得到并测试有效可行的方法与大家一起分享:

首先在你的安装目录下面找到wp-includes/comment-template.php文件,

搜索:$return = “<a href=’$url’ rel=’external nofollow’ class=’url’>$author</a>”;

修改为:$return = “<a href=’$url’ rel=’external nofollow’ class=’url’ target=’_blank’>$author</a>”;

这样就OK啦,打开评论者链接试试吧!文章页面评论、则栏最新留言评论等都有效喔。
这个方法修改的是wordpress程序,所以在程序升级以后就不能用了,需要再次修改。网上还有别的方法,我自己感觉还是这个比较简单,其余的是增加js脚本调用的,如果朋友们不喜欢这个方法,可以去搜索其他的方法哦!

让wordpress自带的近期评论显示评论的内容

wordpress默认的在首页显示最新评论的样式是“评论者+被评论的文章标题”。这样显示最新的评论不会给后面的浏览者一种很直观的感觉,如果 想要知道评论的内容则并须要点击改评论进入到被评论的文章里面才可以查看。基于这样的思考,阿柯决定让评论的内容取代被评论的标题显示在首页上!方法如下:

1、用 HA-Notepad2.exe(或写字板) 打开default-widgets.php(不要用记事本打开,会出错)
2、查找“foreach ( (array) $comments” 并且定位到下面的代码:

if ( $comments ) {
foreach ( (array) $comments as $comment) {
$output .= ‘

  • ’ . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x(‘%1$s on %2$s’, ‘widgets’), get_comment_author_link(), ‘comment_ID) ) . ‘”>’ . get_the_title($comment->comment_post_ID) . ‘’) . ‘

’;
}
}

然后将上面代码修改为:

if ( $comments ) {
foreach ( (array) $comments as $comment) {
$output .= ‘

  • ’ . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x(‘%1$s 说: %2$s’, ‘widgets’), get_comment_author_link(), ‘comment_ID) ) . ‘”>’ . strip_tags( $comment->comment_content) . ‘’) . ‘

 

’;
}
}

PS:最好是自己对比修改前后的两段代码,然后选择性地修改,这样可以避免一些标点格式在复制粘贴中出错。(注意引号与豆号这些标点符号的格式与原文件是否一致)

修改好之后保存(注意保存的时候因为我们在代码里面加入了中文“说:”,所以编码需要更改为UTF-8的形式,否则上传之后可能出现显示乱码的现象)

把修改好的文件上传替换即可。

这里有个不好的地方是,修改好之后,则栏的最新评论是显示整条评论的内容。对于字数较多的评论,这样显示会使则栏最新评论区变得很拥挤。如果能显示设定字拊数地显示单条评论,这样会使界面好看很多。期待技术型的博友支招。