彻底关闭 WordPress 自动更新和更新检查功能,提高后台运行速度

彻底关闭 WordPress 自动更新和更新检查功能,提高后台运行速度

ruinous
2021-12-09 / 0 评论 / 8 阅读 / 正在检测是否收录...

WordPress 支持在后台就可以自动去检查 WordPress 核心代码,插件和主题的版本,并且支持自动更新,这是非常了不起的功能,让 WordPress 站点时时保持最新版,特别是有安全漏洞出现的时候。

WordPress 自动更新的问题

但是这样也造成了其他一些问题:

  1. WordPress 的更新服务器在国外,并且没有在国内开启加速服务,所以 WordPress 在后台检查更新的时候,可能因为各种原因无法顺畅连接上,然后一直卡着,造成 WordPress 后台有时很慢很慢。
  2. 自动更新是好事,但是一些插件或者主题改动太大,造成了后台崩溃,那就不是好事了,特别是生产环境崩了,那就更不是什么好事了,所以对于一些敏感的系统,最好在测试服务器上升级并测试好之后,再到正式生产服务器上升级。
    所以综上所述,最好在正式服务器上关闭 WordPress 自动更新功能,在测试服务器上升级更新好之后,再更新到正式服务器,这样保证服务稳定,也能够让 WordPress 后台跑的更快。

关闭自动更新和更新检查功能

那么怎么关闭 WordPress 自动更新和后台更新检查呢?

首先 WordPress 提供了一个常量:AUTOMATIC_UPDATER_DISABLED,在 wp-config.php 文件中将该值设置为 false,就可以关闭自定更新功能。

如果不想改 wp-config.php 文件,WordPress 还提供了一个 automatic_updater_disabled 接口,通过它也可以关闭自动更新:

add_filter('automatic_updater_disabled', '__return_true');

不过你有没有访问后台,WordPress 都会定时检测 WordPress 核心,插件和主题是否有更新了,这个功能是通过定时作业实现的,一共有三个定时作业:

wp_version_check:检测 WordPress 核心代码是不是最新版本。

wp_update_plugins:检测 WordPress 插件是不是最新版。

wp_update_themes:检测 WordPress 主题是不是最新版。

这三个定时作业,每两天跑一次,不管有没有访问后台,他们都会运行检测你的站点是否需要更新。我们可以通过以下代码实现关闭定时更新检查的作业:

remove_action('init', 'wp_schedule_update_checks'); 
wp_clear_scheduled_hook('wp_version_check'); 
wp_clear_scheduled_hook('wp_update_plugins'); 
wp_clear_scheduled_hook('wp_update_themes');

除了定时作业之外,如果访问 WordPress 后台,WordPress 会每隔 12 小时,就会检测 WordPress 核心,插件和主题是否有更新了。这个就是 WordPress 有时很慢很慢的原因,因为很久没有访问 WordPress 后台,一访问 WordPress 就先去检测更新,所以就显得特别慢,感觉很明显,因为你访问,每隔 12 小时就会检测,所以造成很多人认为 WordPress 很慢。

所以这个每隔 12 小时就检测更新的功能,尤其要关闭,这是后台提速的关键:

remove_action('admin_init', '_maybe_update_core');
remove_action('admin_init', '_maybe_update_plugins');
remove_action('admin_init', '_maybe_update_themes');

我们这样屏蔽之后,是不是后台就无法获得 WordPress 更新了呢?不是的,当我们进入 WordPress 后台插件管理页面,主题管理界面,以及仪表盘下的更新子页面,无论什么时候进入这个三个界面,WordPress 都会去检测是否有新版本的。

add_filter('automatic_updater_disabled', '__return_true');
remove_action('init', 'wp_schedule_update_checks'); 
wp_clear_scheduled_hook('wp_version_check'); 
wp_clear_scheduled_hook('wp_update_plugins'); 
wp_clear_scheduled_hook('wp_update_themes');
remove_action('admin_init', '_maybe_update_core');
remove_action('admin_init', '_maybe_update_plugins');
remove_action('admin_init', '_maybe_update_themes');


//去除头部多余加载信息
remove_action( 'wp_head', 'wp_generator' );//移除WordPress版本
remove_action( 'wp_head', 'rsd_link' );//移除离线编辑器开放接口
remove_action( 'wp_head', 'wlwmanifest_link' );//移除离线编辑器开放接口
remove_action( 'wp_head', 'index_rel_link' );//去除本页唯一链接信息
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 ); //清除前后文信息
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );//清除前后文信息
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );//清除前后文信息
remove_action( 'wp_head', 'feed_links', 2 );//移除文章和评论feed
remove_action( 'wp_head', 'feed_links_extra', 3 ); //移除分类等feed
remove_action( 'wp_head', 'rest_output_link_wp_head', 10 ); //移除wp-json
remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); //头部的JS代码
add_filter( 'show_admin_bar', '__return_false' );//移除wp-json链接
remove_action( 'wp_head', 'rel_canonical' ); //rel=canonical
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 ); //rel=shortlink
//remove_action( 'wp_head', 'wp_print_styles', 8 ); //移除后台插件加载css
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );//移除emoji载入js
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );//emoji载入js
remove_action( 'wp_print_styles', 'print_emoji_styles' );//移除emoji载入css
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
remove_action('wp_head','wp_resource_hints',2);//移除dns-prefetch

0

评论

博主关闭了所有页面的评论