WordPress文章过多导致网站缓慢堵塞的优化方法

2023-11-10 0 683

前言:

优化网站速度是一个重要的任务,特别是当你的 WordPress 网站上有大量的文章时。文章过多可能导致网站变得慢卡顿,影响用户体验。为了解决这个问题,有几种方法可以帮助你优化网站速度。

首先,你可以使用缓存插件来提高网站的加载速度。缓存插件可以将你的网站内容存储在用户的浏览器中,这样当用户再次访问你的网站时,就可以直接从缓存中加载内容,而不需要重新从服务器下载。这可以大大减少网站的加载时间。

其次,你可以优化你的数据库。WordPress 文章存储在数据库中,如果数据库变得庞大而杂乱,会导致网站变慢。你可以使用数据库优化插件来清理和优化数据库,删除不必要的数据和修复数据库表。

另外,你还可以使用图片压缩插件来减小图片的文件大小。大型图片文件会增加网站的加载时间,因此压缩图片可以帮助你减少网站的负载时间。

最后,你可以考虑使用内容分发网络(CDN)。CDN 是一种将你的网站内容分发到全球各地服务器的技术,这样用户可以从离他们最近的服务器加载内容,从而提高网站的加载速度。

通过采取这些优化方法,你可以改善你的 WordPress 网站的速度,提供更好的用户体验。

WordPress文章过多导致网站缓慢堵塞的优化方法
WordPress 网站查询慢的原因是因为在查询帖子列表时,默认也会查询帖子数。使用 get_posts、query_posts 和 WP_Query 这些方法时会出现这个问题。尽管在 4.6.1+版本中 get_posts 方法已经不再使用 SQL_CALC_FOUND_ROWS,但是 query_posts 和 WP_Query 仍然使用,所以需要进行优化。

完全禁用 WordPress 的 SQL_CALC_FOUND_ROWS

将以下的代码放到functions.php文件中:

 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);
}  

EXPLAIN 方法代替 WordPress 的 SQL_CALC_FOUND_ROWS

如果您还需要查询文章数,请使用更高效的 EXPLAIN 方法代替 SQL_CALC_FOUND_ROWS,以更高效的方式禁用 SQL_CALC_FOUND_ROWS。这里我们使用 EXPLAIN 方法。具体代码如下,将以下的代码放在 functions.php 文件中。

 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 );  
收藏 (0)

微信扫一扫

支付宝扫一扫

点赞 (0)

免责声明

本资源仅限个人学习与研究使用,严禁用于任何商业用途!

1 网站名称:汇站网
2 永久网址:https://www.huizhanii.com
3 本站资源来源于网友投稿和付费购买,仅供编程人员及源代码爱好者下载参考与研究,不提供任何技术支持服务!
4 资源展示图片及相关信息仅供参考,不代表本站立场!本站仅作为信息存储平台
5 禁止在服务器和虚拟机上搭建运营,所有资源仅限本地调试与研究使用,不支持联网运行!
6 未经版权方授权,严禁用于商业用途。使用者如违反国家法律法规,需自行承担全部法律责任!
7 请在下载后24小时内删除!建议支持正版授权作品
8 如资源侵犯您的合法权益,请提供版权证明及相关作品信息发送至邮箱:972908224@qq.com,我们将及时处理
9 如遇下载链接失效或支付未到账,请联系站长处理
10 欢迎投稿优质源码或教程,审核通过后将获得相应奖励
11 资源收费仅用于维持网站正常运营
12 数字商品具有特殊性质,一经购买概不退款

汇站网 WordPress教程 WordPress文章过多导致网站缓慢堵塞的优化方法 https://www.huizhanii.com/33713.html

站长资源下载中心-找源码上汇站

常见问题
  • 如果付款后没有弹出下载页面,多刷新几下,有问题联系客服!
查看详情
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情

相关文章

联系官方客服

为您解决烦忧 - 24小时在线 专业服务