深入了解WordPress自动更新

成都创新互联公司一直通过网站建设和网站营销帮助企业获得更多客户资源。 以"深度挖掘,量身打造,注重实效"的一站式服务,以网站设计制作、成都做网站、移动互联产品、全网整合营销推广服务为核心业务。十余年网站制作的经验,使用新网站建设技术,全新开发出的标准网站,不但价格便宜而且实用、灵活,特别适合中小公司网站制作。网站管理系统简单易用,维护方便,您可以完全操作网站资料,是中小公司快速网站建设的选择。

谈到安全性,我们知道定期更新wordpress安装(核心、主题和插件)的重要性,以及升级过程可能需要多长时间,尤其是当我们安装了大量插件时。通常建议按照以下步骤操作:

对于单个网站来说,这可能是一项乏味的任务,而当我们必须更新五个、十个或更多网站时,这可能是一项烦人且复杂的工作。

为了提高安装安全性和简化站点管理的特定目的,WordPress 3.7引入了自动更新。默认情况下,这个很酷的功能是为次要版本(即维护和安全版本)和翻译文件启用的,但可以自定义任何类型的更新。因此,在这篇文章中,我们将研究如何在新版本的WordPress核心、主题或插件发布时自动执行升级过程。让我们深入了解WordPress自动更新!

WordPress自动更新

  • WordPress自动更新
  • 通过wp-config.php控制后台更新
  • 通过API过滤器控制后台更新
  • 结果、通知和调试电子邮件
  • 何时以及为何禁用WordPress自动更新
  • 使用插件控制WordPress自动更新
  • 高级插件和主题的自动更新

WordPress自动更新

有四种类型的更新和WordPress自动更新

核心更新分为三个子类型:

WordPress 允许您为这些类型中的任何一种自动更新过程,提供两个wp-config.php常量和大量API过滤器。

通过wp-config.php控制后台更新

WordPress提供了几个wp-config.php常量,允许我们控制自动更新。设置AUTOMATIC_UPDATER_DISABLED为true将禁用任何类型的自动升级:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

WP_AUTO_UPDATE_CORE允许我们控制核心更新(次要、主要和开发版本)。这个常数可以定义如下:

# Disables all core updates:
define( 'WP_AUTO_UPDATE_CORE', false );
# Enables all core updates, including minor and major:
define( 'WP_AUTO_UPDATE_CORE', true );
# Enables minor updates:
define( 'WP_AUTO_UPDATE_CORE', 'minor' );

在开发安装中WP_AUTO_UPDATE_CORE默认为true。在稳定安装中,它默认为次要。

为了完整起见,我应该提到一个额外的常量,它可以定义为禁用自动更新。但是,将其值设置为true将禁用任何文件编辑,甚至主题和插件安装以及手动更新。

define( 'DISALLOW_FILE_MODS', true );

相反,您可能更喜欢定义DISALLOW_FILE_EDITS常量,这将禁用文件编辑器,但保证安装和更新功能的安全。

相关教程:  wp-config.php 文件——深入了解如何配置WordPress

通过API过滤器控制后台更新

配置常量提供了启用或禁用自动更新的通用方法。但是WordPress提供了许多过滤器,可以更深入地控制任何类型的更新。

注意:过滤器应该在插件中使用,“必须使用插件”是后台更新的一个不错的选择。mu-plugins驻留在/wp-content内的特定文件夹中,并由WordPress自动启用。这些插件不会出现在WordPress插件屏幕中,因此站点管理员不会意外禁用或删除它们。如需更深入的了解,请参阅Codex文档

首先,通过automatic_updater_disabled过滤器返回true与AUTOMATIC_UPDATER_DISABLEDwp-config.php中将常量定义为true具有相同的效果:

add_filter( 'automatic_updater_disabled', '__return_true' );

我们可以通过控制任何更新类型学auto_update_$type这使过滤器或禁用更新取决于价值$type'core''plugin''theme''translation')。

因此,我们可以通过auto_update_core过滤器返回true来自动化所有核心更新:

add_filter( 'auto_update_core', '__return_true' );

在以下示例中,我们启用了主题、插件和翻译的自动更新:

add_filter( 'auto_update_theme', '__return_true' );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_translation', '__return_true' );

在上面的示例中,我们刚刚启用了自动更新。但是这些过滤器让我们可以更好地控制更新。在以下示例中,我们将自动更新两个特定插件:

function cb_auto_update_plugins ( $update, $item ) {
$plugins = array ( 'hello', 'akismet' );
if ( in_array( $item->slug, $plugins ) ) {
// update plugin
return true; 
} else {
// use default settings
return $update; 
}
}
add_filter( 'auto_update_plugin', 'cb_auto_update_plugins', 10, 2 );

回调函数保留两个参数:

该函数检查要更新的项目是否在$plugins数组中,然后相应地返回true或false。

最后,我们可以通过返回truefalse通过以下过滤器来区分开发、次要和主要更新:

add_filter( 'allow_dev_auto_core_updates', '__return_false' );
add_filter( 'allow_minor_auto_core_updates', '__return_true' );
add_filter( 'allow_major_auto_core_updates', '__return_true' );

我们知道有时更新会失败。在最坏的情况下,网站可能会在更新失败后关闭。但幸运的是,我们可以要求WordPress在任何更新(或尝试)后通过电子邮件通知我们。

结果、通知和调试电子邮件

根据更新过程的结果,WordPress会向管理员地址发送不同的电子邮件:

  • 在自动核心更新后发送结果电子邮件;
  • 当WordPress无法运行自动更新时发送通知电子邮件;
  • 调试电子邮件在WordPress的开发版本中发送。

每当自动更新成功或失败时,WordPress都会发送带有以下主题之一的结果或通知电子邮件:

  • 您的网站已更新为WordPress XXX(案例成功)
  • WordPress XXX可用。请更新!(更新失败,需要手动更新:案例失败)
  • 紧急:您的网站可能因更新失败而关闭(更新失败且WordPress可能关闭:案例关键)

auto_core_update_send_email过滤器控制结果和通知邮件。可以通过false如下返回来禁用这些电子邮件:

apply_filters( 'auto_core_update_send_email', '__return_false' );

特别是如果您计划将自动更新扩展到主要核心和/或主题和插件版本,您可能更愿意启用结果和通知电子邮件,或者根据结果或更新类型对其进行自定义。在以下示例中,如果成功,WordPress将不会发送结果电子邮件:

function cb_auto_core_update_send_email ( $send, $type, $core_update, $result ) {
if ( !empty( $type ) && $type == 'success' ) {
// don't send email
return false; 
}
// use default settings
return $send; 
}
}
add_filter( 'auto_core_update_send_email', 'cb_auto_core_update_send_email', 10, 4 );

回调函数保留以下参数:

  • $send 是一个布尔值,用于确定是发送结果还是通知电子邮件;
  • $type 是一个字符串,用于设置要发送的电子邮件类型(成功、失败或关键);
  • $core_update 是更新报价对象;
  • $result 是核心更新的结果(可以是WP_Error)。

默认情况下,当从WordPress.org收到的更新提议设置特定标志并且安装无法更新时,管理员会收到通知。每个版本只会发送一次通知电子邮件。send_core_update_notification_email过滤器允许在是否以及何时发送此类通知方面有一定的自由裁量权。按如下方式应用过滤器:

apply_filters( 'send_core_update_notification_email', '__return_true' );

最后,automatic_updates_send_debug_email过滤器控制调试电子邮件,它提供有关执行更新的有用日志信息。默认情况下,这些电子邮件由开发安装发送。返回false将阻止WordPress发送调试电子邮件,而返回true将启用这些电子邮件,即使在稳定安装中:

apply_filters( 'automatic_updates_send_debug_email', '__return_true' );

何时以及为何禁用WordPress自动更新

自动更新过程对许多用户来说是一项很棒的功能,因为他们可以节省大量时间和工作。但即使看起来自动更新真的很安全,我们也应该问问自己,启用所有这些是否总是一个好主意。

有时,我们可能会遇到主题和插件的不兼容问题,这可能会中断某些功能甚至破坏网站。如果网站依赖于大量插件,则执行手动更新可能更安全,至少对于插件而言。一对一的过程使我们能够快速检测自动化难以发现的问题。

此外,如果您是一名开发人员,即使您不打算分发它们,您也应该小心为主题和插件选择的名称。运行更新时,WordPress 会在插件目录中查找插件的新版本,并在找到同名插件时覆盖文件。因此,如果您想为主题和插件启用后台更新,请务必为您的脚本设置唯一的名称。

是的,这对开发人员来说是很多好东西。但是非开发人员用户如何管理自动更新?

使用插件控制WordPress自动更新

如果您不是开发人员,则可以使用插件控制WordPress自动更新。

Easy Updates Manager允许管理员用户在单站点和多站点安装上控制WordPress更新。该插件允许管理WordPress更新的所有类型,并且可以单独选择主题和插件进行自动更新。附加功能与通知电子邮件、用户阻止和记录插件更新有关。

Easy Updates Manager插件

在不兼容的情况下,可能需要快速恢复到主题或插件的先前版本。WP Rollback允许您从插件屏幕恢复任何已安装主题和插件的先前版本。只需单击回滚链接,插件就会向您显示所有可用版本的列表。不幸的是,如果您的网站出现故障,WP回滚将无济于事,所以不要忘记备份并仔细阅读在线文档。

WP Rollback插件

最后,如果您需要对WordPress安装中的自动更新进行兼容性测试,Background Update Tester将提供您需要的信息。

高级插件和主题的自动更新

作为高级WordPress插件或主题的开发人员,您有责任将自动更新机制集成到您的产品中,以提供用户对WordPress.org产品所期望的无缝更新体验。这已成为当今的市场标准(有充分的理由)。您可以自己托管高级产品并开发更新机制,或利用Freemius、Kernl或WP Updates等平台,这些平台提供安全的存储库和开箱即用的自动更新即服务。

小结

WordPress自动更新是一项很棒的功能,可以为我们节省大量时间和工作,并使我们能够定期更新我们的网站。但是你会启用各种更新吗?请在下面的评论中告诉我们。

新闻标题:深入了解WordPress自动更新
网页路径:http://www.shufengxianlan.com/qtweb/news2/495752.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联