VPS参考测评推荐
专注分享VPS主机优惠信息
衡天云优惠活动
华纳云最新优惠促销活动
jtti最新优惠促销活动
新罗云最新优惠促销活动

WordPress文章太多了怎么优化?快速解决WordPress文章过多导致网站卡顿的问题,WordPress文章数量很多导致网站变慢怎么办?

locvps
主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

你有没有注意到,当你把WordPress作为一个程序来使用的时候,文章多了会越来越卡,不优化就不行了。今天给大家分享一下WP的数据库SQL优化方法。根据 主机参考 的经验,大多数 WordPress 网站上的文章数量在数百到数千之间。此时,普通用户不会对网站的打开速度感到任何异常。但是如果WordPress网站的文章数量超过10万,即使网站服务器的配置非常强大,网站的打开速度基本上也会很慢。

WordPress文章太多了怎么优化?快速解决WordPress文章过多导致网站卡顿的问题,WordPress文章数量很多导致网站变慢怎么办?-主机参考

这是因为 WordPress 在查询文章列表时,默认也会查询文章数。这在网站数据量较小的情况下不会造成任何问题,但在文章数量很大的情况下,这是不可避免的。慢查询。一位主机参考的用户告诉我们,他的网站有40万篇文章,打开首页需要一两分钟,甚至首页或者文章页也经常打不开。

WordPress网站查询慢的原因:WordPress在查询帖子列表时,默认也会查询帖子数。使用此方法:get_posts、query_posts 和 WP_Query。get_posts在4.6.1+中没有使用SQL_CALC_FOUND_ROWS,但是query_posts和WP_Query还是会用到,所以需要优化。

 

那么如何解决因 WordPress 文章过多而导致网站慢的问题呢?有两种方法可以解决,优化了WordPress的查询功能,完美解决了这个问题。

方法一:纯代码模式

1,完全禁用 SQL_CALC_FOUND_ROWS,放到functions.php文件中即可

// WordPress文章太多了怎么优化?快速解决WordPress文章过多导致网站卡顿的问题,WordPress文章数量很多导致网站变慢怎么办?
// https://zhujicankao.com/66624.html
add_action('pre_get_posts', 'wndt_post_filter');
function wndt_post_filter($query) {
    if (is_admin() or !$query->is_main_query()) {
        return $query;
    }

    // 禁止查询 SQL_CALC_FOUND_ROWS
    $query->set('no_found_rows', true);
}

2,如果还需要查询文章数,请使用效率更高的EXPLAIN方法,而不是SQL_CALC_FOUND_ROWS 以更有效的方式禁用 SQL_CALC_FOUND_ROWS 的使用,这里我们使用EXPLAIN方法,具体代码如下,放在functions.php文件中即可

// WordPress文章太多了怎么优化?快速解决WordPress文章过多导致网站卡顿的问题,WordPress文章数量很多导致网站变慢怎么办?
// https://zhujicankao.com/66624.html
if ( ! function_exists( 'zjck_set_no_found_rows' ) ) {
    /**
     * 设置WP_Query的 'no_found_rows' 属性为true,禁用SQL_CALC_FOUND_ROWS
     *
     * @param  WP_Query $wp_query WP_Query实例
     * @return void
     */
    function zjck_set_no_found_rows(\WP_Query $wp_query)
    {
        $wp_query->set('no_found_rows', true);
    }
}
add_filter( 'pre_get_posts', 'zjck_set_no_found_rows', 10, 1 );


if ( ! function_exists( 'zjck_set_found_posts' ) ) {
    /**
     * 使用 EXPLAIN 方式重构
     */
    function zjck_set_found_posts($clauses, \WP_Query $wp_query)
    {
        // Don't proceed if it's a singular page.
        if ($wp_query->is_singular()) {
            return $clauses;
        }

        global $wpdb;

        $where = isset($clauses['where']) ? $clauses['where'] : '';
        $join = isset($clauses['join']) ? $clauses['join'] : '';
        $distinct = isset($clauses['distinct']) ? $clauses['distinct'] : '';

        $wp_query->found_posts = (int)$wpdb->get_row("EXPLAIN SELECT $distinct * FROM {$wpdb->posts} $join WHERE 1=1 $where")->rows;

        $posts_per_page = (!empty($wp_query->query_vars['posts_per_page']) ? absint($wp_query->query_vars['posts_per_page']) : absint(get_option('posts_per_page')));

        $wp_query->max_num_pages = ceil($wp_query->found_posts / $posts_per_page);

        return $clauses;
    }
}
add_filter( 'posts_clauses', 'zjck_set_found_posts', 10, 2 );

方法二:插件模块,仅2KB的插件

进入WordPress后台-插件-安装插件-上传插件,安装并激活插件,无需额外设置

下载地址:WP_FastQuery

这几篇文章你可能也喜欢:

本文由主机参考刊发,转载请注明:WordPress文章太多了怎么优化?快速解决WordPress文章过多导致网站卡顿的问题,WordPress文章数量很多导致网站变慢怎么办? https://zhujicankao.com/66624.html

【腾讯云】领8888元采购礼包,抢爆款云服务器 每月 9元起,个人开发者加享折上折!
打赏
转载请注明原文链接:主机参考 » WordPress文章太多了怎么优化?快速解决WordPress文章过多导致网站卡顿的问题,WordPress文章数量很多导致网站变慢怎么办?
主机参考仅做资料收集,不对商家任何信息及交易做信用担保,购买前请注意风险,有交易纠纷请自行解决!请查阅:特别声明

评论 抢沙发

评论前必须登录!