Tag Archive for 'WordPress'

Page 2 of 6

WordPress 糟糕的重复评论检测方式

Posted on 2009-01-22 in Blog RelatedComments

去旧空间清理文件时,用 FTP 拉下一大堆 mysql slow queries 日志。由于我的博客平时几乎没什么人来访问,所以我也没怎么去关心是否存在 mysql slow queries。看了下日志,发现绝大部分 slow query 都是由 WordPress 的重复评论检测造成成的:

wp_comment_mysql_slow_queries

没想到居然直接用 Text 类型的 comment_content 字段来判断评论重复,太衰了。开始还怀疑是不是日志搞错了,于是找到相应的代码确认: Continue reading…

At Reply Mail Notification 测试贴

Posted on 2009-01-19 in Blog Related28 Comments

想给博客加上访客留言被回复时邮件通知留言者的功能,本不想折腾,只不过试用了几个插件,都觉得不尽满意,便自己写了一个,先实现了几个功能:

  • 访客可以针对每篇日志选择是否接收邮件通知
  • 访客可以针对每篇日志选择接收何种评论通知
  • 访客可以点击邮件底部的链接取消邮件通知

对于使用 @+留言者 形式的回复暂未作邮件通知,需点击留言者名称右边的小图标 reply icon 回复。回复通知只对即日起的新留言有效。

欢迎在此留言,灌水。

让 WordPress 自动删除 Post Revisions

Posted on 2008-11-18 in Blog RelatedComments

貌似在 wp-config.php 中加入 define(’WP_POST_REVISIONS’, false); 来禁用 WordPress 的日志修订功能,post revision 还是会产生。gohsy 同学写了个插件 Revision Manager 来清理 post revision,不过个人觉得手动清理还是不够方便,决定利用 WordPress 的计划任务功能(WP_Cron)偷偷懒。

不想为了这小小的功能而多添加一个插件,所以在主题目录下的 functions.php 文件添加了以下代码:

function delete_post_revisions() {
  global $wpdb;

  // Also need to delete the post meta and term relationships
  $wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id IN (SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision')");
  $wpdb->query("DELETE FROM {$wpdb->term_relationships} WHERE object_id IN (SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision')");

  // Delete the post revisions
  $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'");
}

// Register the event
add_action('delete_post_revisions_event', 'delete_post_revisions');
if (!wp_next_scheduled('delete_post_revisions_event')) {
  wp_schedule_event(time(), 'daily', 'delete_post_revisions_event');
}

Continue reading…