Tag Archives: Wordpress
今天博客服务器(Hostmonster 主机)全站从中午开始出现 500 错误,然后我登陆进 CPanel 各种查看日志、进程、数据库、PHP 状态,均未发现异常。后来又清理 php.ini、.htaccess,重启 PHP,也没有任何改善。只好给客服投了个 Ticket,准备等待客服解决。
后来灵机一动,发现同一主机 host 的其它 WordPress,有的活得很好,有的也是挂掉了。于是用排除法清理 wp-config.php,最终确定是 wp-config.php 中的 WP_CACHE 配置项有问题,删掉之后访问就恢复正常。
define('WP_CACHE', true); //Added by WP-Cache Manager
但由于 WP_CACHE 配置项是 WP Super Cache 自动增加的,一旦登陆进后台,WP Super Cache 就会自动把它再加上,后台页面又会出现 500 错误。于是乎我只好将整个 WP Super Cache 插件干掉(包括 wp-content 下的 php 脚本),终于一切恢复了正常。印象里删掉的 WP Super Cache 的版本是 0.9.9.*。
rm advanced-cache.php backup-* cache/ wp-cache-config.php plugins/wp-super-cache/ -rf
考虑到 WP Super Cache 还是对性能有一定改善,又看了一下最新版的 WP Super Cache 是 1.0 版,我怀疑是 WP Super Cache 版本较旧造成的问题。虽然该版本已经使用了很长时间,不明白为什么今天才会爆出来 500 错误(也许 Hostmonster 主机程序进行了升级?),我还是装上了最新版本 WP Super Cache 插件。期望它不要再出现类似问题,否则只能弃用了。
既然我的博客不是同一主机上的个例,我想可能在 Hostmonster 上的其它主机也可能会遇到此类问题,特记录下来供参考。
我也记不得从什么时候开始用 mg12 写的 iNove 主题了。当时选择它的主要原因是贴心,集成了很多有用的功能,另外专门为一些插件做了定制化。用了它很长时间,期间也自己动手改了不少细节部分的代码,所以我一直用的是 1.4.5,没有升级到 1.4.6。
但是主题这东西,用时间长了都会审美疲劳,再加上其老长时间不更新,想要换个主题的心就如野草般在心中疯狂滋长。我不否认其中有个重要原因是——用 iNove 主题的人,实在是太多了!
压垮骆驼的最后一根稻草是某天忽然想到,Wordpress 能否像 New Twitter 那样,点击文章就会在右侧滑出评论和评论框?但是没有找到能支持这样的主题,而自己在前端上的水平又不足以实现这想法,只能退而求其次,换个新主题尝尝鲜吧。看中目前这款 Obscure 主题的原因有几个:双层导航栏、logo 易更换、比 iNove 宽点儿又不过宽、简单大气。其实还有一点是我觉得它的布局契合我未来的一点小想法,适合定制,这个就以后再说了。
做程序员的有个通病,就是容易兴奋。一旦心血来潮有了新想法,就一定要尽快把这件事情搞定。我不止一次忽然在路上想到代码该怎样修改才能更好,这时候真是恨不得身边有台电脑。同样更换主题也是发生在这个情形下,大半夜的整整花了三个小时才基本搞定。FE 真是伤不起,一个小图片或者一个样式都要调半天,我觉得还是做 C 程序员比较幸福。
除了换主题以外,把博客标题也改了,Solrex Shuffling 直接简化为 Solrex 加个 2,主要是为了简短好处理 logo。至于含义,可以说是与我的 favicon 统一,可以说是 2.0 升级版,也可以说是 Solrex 还在 2x 的人生路上。这解释的任务,我就留到以后吧,也许我会想到更好的呢!
接上篇,这里共享我写的一个用来合并 WordPress 博客评论的小工具。该工具可以将两个镜像 WordPress 博客上对同一篇文章的评论合并起来。
下面先介绍合并的步骤:
1. 首先到这里下载我修改的 WordPress 导入插件,并按照安装一般 WordPress 插件的方式,安装并启用该插件。
2. 然后在 WP 管理后台选择“工具->导入->WordPress”,然后上传从镜像 WP 博客导出的 xml 文件。
3. 在下一步选择“Only Merge Comments” 很重要!!!

4. submit,稍等片刻即可。
其实我没有重新制造轮子,只是修改了一下 WordPress 默认的博客导入工具 WordPress Importer,给它加了点儿功能。只要选中“Only Merge Comments”,使用这个工具是很安全的,它只会将 xml 中与当前博客中存在的文章对应的评论添加上去,而不处理任何不存在的文章,也不会重复添加已有的评论,而且会过滤某些垃圾评论。用这个选项,你可以重复导入很多次 :)
可能的缺陷有:这个工具判断文章是否存在的唯一标准是文章标题,因此如果有多篇文章标题一样,可能会存在问题(未测试)。本人不保证它是充分测试的,因此在应用之前最好还是在本地的镜像测试后进行;如果没有进行测试,请一定在合并之前对博客进行备份。
下面是我修改的 patch:
--- wordpress-importer/wordpress-importer.php 2010-06-02 00:38:23.000000000 +0800
+++ ../../www/blog/wp-content/plugins/wordpress-importer/wordpress-importer.php 2010-09-29 19:33:57.953790929 +0800
@@ -49,2 +49,3 @@
var $fetch_attachments = false;
+ var $only_merge_comments = false;
var $url_remap = array ();
@@ -258,2 +259,7 @@+<h2><?php _e('Only Merge Comments', 'wordpress-importer'); ?></h2>
+<p>
+ <input type="checkbox" value="1" name="comments" id="merge-comments" />
+ <label for="merge-comments"><?php _e('Only merge comments, ignore post, tags...', 'wordpress-importer') ?></label>
+</p>
<?php
@@ -483,3 +489,7 @@- $post_exists = post_exists($post_title, '', $post_date);
+ if ($this->only_merge_comments) {
+ $post_exists = post_exists($post_title, '', '');
+ } else {
+ $post_exists = post_exists($post_title, '', $post_date);
+ }@@ -489,4 +499,7 @@
$comment_post_ID = $post_id = $post_exists;
- } else {
-
+ } else if ( $this->only_merge_comments) {
+ echo '<li>';
+ printf(__('Post <em>%s</em> not found, comments not updated.', 'wordpress-importer'), stripslashes($post_title));
+ $comment_post_ID = $post_id = $post_exists;
+ } else {
// If it has parent, process parent first.
@@ -605,3 +618,11 @@
// if this is a new post we can skip the comment_exists() check
- if ( !$post_exists || !comment_exists($comment['comment_author'], $comment['comment_date']) ) {
+ if ($this->only_merge_comments) {
+ if ( $post_exists && !comment_exists($comment['comment_author'], $comment['comment_date']) && $comment['comment_author'] != 'Unknown') {
+ if (isset($inserted_comments[$comment['comment_parent']]))
+ $comment['comment_parent'] = $inserted_comments[$comment['comment_parent']];
+ $comment = wp_filter_comment($comment);
+ $inserted_comments[$key] = wp_insert_comment($comment);
+ $num_comments++;
+ }
+ } else if ( !$post_exists || !comment_exists($comment['comment_author'], $comment['comment_date']) ) {
if (isset($inserted_comments[$comment['comment_parent']]))
@@ -847,5 +868,7 @@
$this->get_entries();
- $this->process_categories();
- $this->process_tags();
- $this->process_terms();
+ if ($this->only_merge_comments) {
+ $this->process_categories();
+ $this->process_tags();
+ $this->process_terms();
+ }
$result = $this->process_posts();
@@ -891,2 +914,4 @@
$fetch_attachments = ! empty( $_POST['attachments'] );
+ $only_merge_comments = ! empty( $_POST['comments'] );
+ $this->only_merge_comments = (bool) $only_merge_comments;
$result = $this->import( $_GET['id'], $fetch_attachments);
MSN Space 总算倒了,所有用户都要求被迁往 wordpress.com,或者下载备份文件。话说我第一个用得顺手的 blog 还是 MSN Space,也用了很长的时间,不免觉得有些悲凉。 … Continue reading
前两天我才在 Twitter 炫耀了一下我忍住没当小白的努力,没想到昨天晚上被哥们一忽悠,他说他没有发现 WP 2.8 的 bug,就升级了一下 WordPress … Continue reading
近两年以来我都是使用的 yo2.cn 提供的博客托管服务,就是说 yo2.cn 提供一个 WordPress 空间,我将域名 blog.solrex.cn … Continue reading
这个网站的 WordPress 主题太——漂亮了!!!太可爱了!!!太喜欢了!!! http://rin-wendy.com/ 别找了,作者没有释出主题下载。国内论坛上曾经有人用蜘蛛抠下来了主题文件,但是碰巧 Rin 其实也是华人,人家能看懂中文。在 Rin … Continue reading
先引用一段著名的对话: A: 你有博客吗? B: 有。 A: 你介意换一个 BSP(Blog … Continue reading
