• 2010-01-04

    变更WordPress数据库表前缀

    Views: 20993 | No Comments

    假设你原来的前缀是"wp_", 将数据库中所有表都改名一遍.

    然后修改config.php:

    $table_prefix = 'PREFIX_';

    直接修改数据库表 wp_usermeta, 将meta_key带前缀"wp_"的行, 全部修改为"PREFIX_"前缀(你的新前缀).

    直接修改数据库表 wp_options, 将option_name=wp_user_roles的那一行, 修改为option_name=PREFIX_user_roles.

    如果没有做这些修改, 会在后台管理页面遇到错误提示"You do not have sufficient permissions to access this page."或"您没有足够的权限访问本页面".

    Posted by ideawu at 2010-01-04 17:59:34 Tags:
  • 2009-06-27

    博客防垃圾评论探讨

    Views: 23119 | 3 Comments

    由于 Web/HTTP 的流行(Web 基于 HTTP, 超文本传输协议), 人们开发了大量的 Web 开发库, 这使得, 提交一个表单发表评论是一件非常简单的事. 如果使用脚本语言, 甚至能仅用 3, 5 行代码便能解决.

    博客防垃圾评论, 是每一个博主十分关心了头疼的问题, 特别是使用了 WordPress 这类十分流行的开源博客软件, 那么被垃圾评论盯上的机率就更甚了. 同时, 这些软件也提供了防垃圾评论(anti-spam)插件, 用于解决这个问题.

    1. 垃圾评论的分类

    垃圾评论根据产生方式在可以分为两大类: 人工垃圾评论, 机器人垃圾评论. Continue reading »

    Posted by ideawu at 2009-06-27 09:33:30 Tags:
  • 2009-05-03

    使用i_am_not_spam WordPress插件

    Views: 32748 | 9 Comments

    虽然akismet识别垃圾评论的准确率很高, 但对于我来说, 每天看到垃圾评论队列里有那么多垃圾评论, 还是很不爽. 眼不见为净. 于是自己写了个Wordpress插件, 直接丢弃垃圾评论.

    WordPress只有comment_post, 但没有pre_comment_post事件, 在评论被保存之前触发. 我只好自己加上了. 所以修改了wp-comments-post.php文件.

    // 就是这一行, ideawu.net
    do_action('pre_comment_post', $commentdata);
    
    $comment_id = wp_new_comment( $commentdata );
    
    $comment = get_comment($comment_id);
    

    插件很简单, 就是利用comment_post事件加入一个隐藏字段, 该字段的值通过客户端JavaScript代码来设置. 提交后和服务器端的值比较, 如果不相同, 说明用户未开启JavaScript, 被认为是垃圾评论. 评论机器人一般不会支持JavaScript.

    有需要的朋友给我留言, 我发给你. 欢迎有心的朋友按第一条评论的格式回复进行测试!

    Posted by ideawu at 2009-05-03 20:54:28 Tags: ,
  • 2009-04-30

    博客迁移到WordPress, 欢迎订阅

    Views: 14534 | 2 Comments

    从第一次想法到现在好几年, 今天终于把博客迁移到Wordpress上, 欢迎订阅. 近4年来不使用Wordpress, 而是使用自己写的博客程序, 原来有几个: 1. 自己写的程序更快. 2. 自己写的程序用起来更顺手.

    因为自己比较熟悉PHP+MySQL, 所以数据迁移很顺利, 原来ideablog中的文章, 评论和留言都迁移过来了, 没有丢失. 而且通过简单的文本替换, 适应了Wordpress的文章显示格式, 保持了原有的文章格式. 当然会有部分格式有问题, 但还未发现.

    新博客刚上线没几分钟, 就收到垃圾评论(spam). 还不如我的ideablog, 只用简单的客户端JavaScript代码就可以实现防垃圾评论, 因为spam机器人不会去执行javascript.

    欢迎订阅RSS.

    Posted by ideawu at 2009-04-30 20:10:14 Tags:
  • 2009-03-12

    WordPress分页代码

    Views: 23547 | 2 Comments

    将下面的函数放到你的主题的 functions.php 文件中:

    function theme_echo_pagenavi(){
        global $wp_query;
        global $request, $posts_per_page, $wpdb, $paged;
        $maxButtonCount = 9; //显示的最多链接数目
    
        $current_page = $paged;
    
        $current_page = $paged;
        if(empty($current_page)) {
            $current_page = 1;
        }
    
        $numposts = $wp_query->found_posts;
        $max_page = $wp_query->max_num_pages;
    
        $start = max(1, $current_page - intval($maxButtonCount/2));
        $end = min($start + $maxButtonCount - 1, $max_page);
        $start = max(1, $end - $maxButtonCount + 1);
    
        if($current_page <= 1){
            echo "<span>|<</span>";
            echo "<span><<</span>";
        }else{
            echo '<a href="'.get_pagenum_link().'"><span>|<</span></a>';
            echo '<a href="'.get_pagenum_link($current_page-1).'"><span><<</span></a>';
        }
        for($i=$start; $i<=$end; $i++){
            if($i == $current_page) {
                echo "<span class=\"page_num on\">$i</span>";
            } else {
                echo '<a href="'.get_pagenum_link($i).'"><span class="page_num">'.$i.'</span></a>';
            }
        }
        if($current_page >= $max_page){
            echo "<span>>></span>";
            echo "<span>>|</span> ";
        }else{
            echo '<a href="'.get_pagenum_link($current_page+1).'"><span>>></span></a>';
            echo '<a href="'.get_pagenum_link($max_page).'"><span>>|</span></a>';
        }
    
        echo " {$current_page}/{$max_page}页, {$numposts}条记录.";
    }
    

    在主题的 index.php 文件中这样引用:

    <?php theme_echo_pagenavi(); ?>
    
    Posted by ideawu at 2009-03-12 14:47:01 Tags:
|<<<12>>>| 2/2 Pages, 11 Results.