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

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

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

这是因为 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://本站.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://本站.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://本站.com/66624.html

推荐站内搜索:香港服务器租用、美国主机代购、域名免费注册0元注册、vps服务器、域名备案收费吗、中文域名注册查询、个人注册域名、免费域名、域名查询、备案域名租用、