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

这是因为 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插件添加站点加速,并提供相关的代码示例。
首先,了解网站加速的原理
在我们开始之前,让我们了解网站加速的原理。网站加速的目的是通过优化网站的加载速度来提高用户体验和SEO排名。为了实现这一目标,我们需要使用一些常见的加速方法,例如:
1.使用CDN(内容分发网络):通过缓存网站的静态资源,如图片、CSS和JavaScript文件,可以加快这些文件的下载和加载速度,提高整个网站的访问速度。
2.启用浏览器缓存:通过为网站的静态文件设置适当的过期时间,您可以让浏览器缓存这些文件,从而减少服务器请求和传输时间。
3.压缩文件:通过压缩HTML、CSS和JavaScript文件,可以减小它们的大小,从而提高文件的下载和加载速度。
二、为WordPress插件添加网站加速功能的步骤
以下是将网站加速添加到WordPress插件的步骤:
1.选择好的CDN服务提供商:市场上有许多CDN服务提供商可供选择,例如CloudFlare和MaxCDN。根据您的需求和预算选择合适的CDN提供商。
2.注册和设置CDN服务:根据所选CDN提供商提供的指南注册和设置您的CDN服务。此步骤包括验证您的域名和修改DNS设置。
3.配置WordPress插件使用CDN:有一些WordPress插件可以帮助您轻松配置和管理CDN。W3 Total Cache是常用的插件之一。安装并激活插件后,您可以在插件设置页面上找到CDN选项,包括您使用的CDN供应商的设置参数。
4.添加CDN设置参数:根据CDN供应商提供的指南填写CDN设置页面中的参数。参数通常包括CDN地址、加速域名、密钥等。
5.启用浏览器缓存:W3 Total Cache插件还提供了启用浏览器缓存的选项。在插件的设置页面中,您可以找到浏览器缓存选项并启用该功能。这将为网站的静态文件设置适当的到期时间,以便浏览器可以缓存这些文件。
6.压缩文件:W3 Total Cache插件还可以帮助您压缩网站的静态文件。在插件的设置页面中,您可以找到压缩文件的选项并启用该功能。这将自动压缩HTML、CSS和JavaScript文件并减小它们的大小。
第三,代码示例
以下是使用W3 Total Cache插件为WordPress插件添加站点加速功能的代码示例:
/* * *设置CDN加速*/function my _ CDN _ settings(){ define(‘CDN _ URL‘,‘https://CDN . example . com/‘);define(‘CDN _ COOKIE _ DOMAIN‘,$ _ SERVER【‘HTTP _ HOST‘】);} add _ action(‘init’,‘my _ cdn _ settings’);/* * *启用浏览器缓存*/function my _ browser _ cache _ settings(){ header(“expires:“。GM date(“d,dmyh: i: s“,time()+365 * 24 * 60 * 60)。“GMT“);header(“Cache-Control:public,max-age = 31536000“);} add _ action(‘send _ headers’,‘my _ browser _ cache _ settings’);/* * * compress html */function my _ compress _ html(){ ob _ start(‘my _ html _ compress‘);} function my _ HTML _ compress($ HTML){ return preg _ replace(array‘/‘,//delete HTML comments‘/s { 2,}/‘,//delete extra spaces‘/‘,//delete tabs‘/?/‘、//删除换行符)、数组(‘、//空“”、//一个空格“”、//空“”、//空)、$ html);} add _ action(‘get _ header’,‘my _ compress _ html’);本文介绍了在WordPress插件中添加网站加速功能的步骤,并提供了相关代码示例。通过优化网站的加载速度,您可以提高用户体验和SEO排名,从而使您的网站更具竞争力。希望这篇文章能帮到你,祝你加速成功!
以上就是如何给WordPress插件添加网站加速功能的细节。更多内容请关注草根吧VPS其他相关文章!







