主机评测网,专注vps、独立服务器等主机评测
最专业的主机评测网站

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

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

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

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

这是因为 WordPress 在查询文章列表时,默认也会查询文章数。这在网站数据量较小的情况下不会造成任何问题,但在文章数量很大的情况下,这是不可避免的。慢查询。一位草根吧VPS的用户告诉我们,他的网站有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://vps.caogenba.com.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://vps.caogenba.com.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://vps.caogenba.com.com/66624.html

赞(0) 打赏
未经允许不得转载:主机测评 » WordPress文章太多了怎么优化?快速解决WordPress文章过多导致网站卡顿的问题,WordPress文章数量很多导致网站变慢怎么办?

评论 抢沙发

登录

找回密码

注册