IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    再谈 WordPress 的速度优化 — 优化插件真的是提速的吗?

    obaby发表于 2024-03-16 07:03:11
    love 0

    这几天除了发版就是在看wp的相关问题,前几天dabenshi和格子老师 评论说夜间模式的插件有问题。本来想写代码的,但是,又不想写了就直接继续安装插件来解决这个问题。插件安装启用之后发现一个问题,那就是速度又变慢了。

    这就让人很疑惑,于是继续开启查询监控器排查问题。同样一通修改之后把插件的自动更新检测全部干掉,但是提升依然有限。没有恢复原来的水平,今天早上尝试把插件禁用了。竟然依然没有改善,于是不得不思考是不是另外插件导致的问题。

    这几天除了夜间模式的插件,另外一个安装的插件就是WPOPT ,这个插件的“WPOPT-WordPress高级优化插件”。看其实来国人写的插件,按理说国内的插件针对国内用户的使用习惯的优化还是蛮不错的。

    声明:

    以下测试仅用于说明该插件对我的博客性能提升没有效果,不代表在其他博客上无效!

    以下测试仅用于说明该插件对我的博客性能提升没有效果,不代表在其他博客上无效!

    以下测试仅用于说明该插件对我的博客性能提升没有效果,不代表在其他博客上无效!

    直接跑到itdog测速网跑了一下:

    如果没记错的话,在上次进行优化的时候测速已经多数区域都是0.5s-1s区域,现在反而成了1s-3s居多,这就让人很疑惑了。

    关闭wpopt插件重新测试:

    这~~感觉反向优化了?当然,也可能是我的插件设置有问题,总之目前看来该插件对我的博客来说没有优化,反而成了负担。

    测试视频:
    
    期间禁用组件的时候还报错了,这个可能是系统问题。

    另外,优化性能的时候发现另外一个问题,就是亲密度系统存在重复查询以及大量无效查询的情况。于是对待吗进行了进一步优化,针对管理员,也就是姐姐我的评论进行了过滤:通过email和url进行排除,这样可以至少减少1/3的数据查询量。

    优化后代码:

    //评论VIP标志
    function get_author_class($comment_author_email,$comment_author_url) {
        global $wpdb;
        $is_add_link_badge = false;
        $adminEmail = 'root@obaby.org.cn';
        // $author_count = count($wpdb->get_results(
        //         "SELECT comment_ID as author_count FROM $wpdb->comments WHERE comment_author_email = '$comment_author_email' "));
        // 
        $author_count =0;
        if($comment_author_email!= 'root@obaby.org.cn') {
            $args = array(
                'author_email' => $comment_author_email,   // Use user_id.
            'count'   => true // Return only the count.
            );
            $author_count = get_comments( $args );
        }
        // echo $comments_count;
        if(email_exists($comment_author_email)&& $comment_author_email!=$adminEmail)echo '<img decoding="async" loading="lazy" src="https://badgen.net/badge/用户/已认证/CCFF33?icon=rss" alt="" height="16">&nbsp';
        $user = get_user_by('email',$comment_author_email);
        if($user!= false) {
            //      $user_url = $wp_user['user_email'];
            //echo $user;i
            //
            $comment_reg_author_url= $user->user_url;
            if(strpos($comment_reg_author_url,'h4ck.org.cn')==false) {
                $parsedUrl = parse_url($comment_reg_author_url);
                if (isset($parsedUrl['host'])) {
                    $domainName = $parsedUrl['host'];
                    $comment_author_url_qs = esc_sql('%'.$domainName.'%');
                    $linkurls = $wpdb->get_results(
                                        "SELECT link_url FROM $wpdb->links WHERE link_url like '$comment_author_url_qs'");
                    if(count($linkurls)>0) {
                        echo '<img decoding="async" loading="lazy" src="https://badgen.net/badge/友链/集美们/blue?icon=chrome" alt="" height="16">&nbsp';
                        $is_add_link_badge =true;
                    }
                }
            }
        }
        if($comment_author_email ==$adminEmail) {
            echo '<img decoding="async" loading="lazy" src="https://badgen.net/badge/管理员/小妖精/ff91a4?icon=terminal" alt="公主" height="16">&nbsp';
            echo '<img decoding="async" loading="lazy" src="https://badgen.net/badge/角色/女王/red?icon=matrix" alt="Queen" height="16">&nbsp';
            $is_add_link_badge =true;
        }
        $parsedUrl = parse_url($comment_author_url);
        if (isset($parsedUrl['host'])&&$is_add_link_badge==false &&strpos($comment_author_url,'h4ck.org.cn')==false) {
            $domainName = $parsedUrl['host'];
            $comment_author_url_qs = esc_sql('%'.$domainName.'%');
            $linkurls = $wpdb->get_results(
                            "SELECT link_url FROM $wpdb->links WHERE link_url like '$comment_author_url_qs'");
            if(count($linkurls)>0) {
                echo '<img decoding="async" loading="lazy" src="https://badgen.net/badge/友链/集美们/blue?icon=chrome" alt="" height="16">&nbsp';
            }
        }
        if($comment_author_email!=$adminEmail) {
            if($author_count>=1 && $author_count<10)
                            echo '<img decoding="async" loading="lazy" src="https://badgen.net/badge/亲密度/Level 1/gray?icon=codebeat" alt="Level 1" height="16">'; else if($author_count>=10 && $author_count<20)
                            echo '<img decoding="async" loading="lazy" src="https://badgen.net/badge/亲密度/Level 2/cyan?icon=codebeat" alt="Level 2" height="16">'; else if($author_count>=20 && $author_count<50)
                            echo  '<img decoding="async" loading="lazy" src="https://badgen.net/badge/亲密度/Level 3/green?icon=codebeat" alt="Level 3" height="16">'; else if($author_count>=50 && $author_count<100)
                            echo  '<img decoding="async" loading="lazy" src="https://badgen.net/badge/亲密度/Level 4/yellow?icon=codebeat" alt="Level 4" height="16">'; else if($author_count>=100 && $author_count<200)
                            echo  '<img decoding="async" loading="lazy" src="https://badgen.net/badge/亲密度/Level 5/orange?icon=codebeat" alt="Level 5" height="16">'; else if($author_count>=200 && $author_count<500)
                            echo  '<img decoding="async" loading="lazy" src="https://badgen.net/badge/亲密度/Level 6/red?icon=codebeat" alt="Level 6" height="16">'; else if($author_count>=500 && $author_count<1000)
                            echo  '<img decoding="async" loading="lazy" src="https://badgen.net/badge/亲密度/Level 7/pink?icon=codebeat" alt="Level 7" height="16">'; else if($author_count>=1000 && $author_count<2000)
                            echo  '<img decoding="async" loading="lazy" src="https://badgen.net/badge/亲密度/Level 8/purple?icon=codebeat" alt="Level 8" height="16">'; else if($author_count>=2000)
                            echo  '<img decoding="async" loading="lazy" src="https://badgen.net/badge/亲密度/Level 9/purple?icon=codebeat" alt="Level 9" height="16">';
        }
    }

    wordpress插件太多了,所以在安装各种插件之后可以自己测试下具体的效果,是优化了性能,还是拖垮了性能。

    当然,也可能是插件冲突或者其他问题,所以,对别人来说有用的好用的,不见得对自己来说就是好用的。适合自己的才是有用的。



沪ICP备19023445号-2号
友情链接