更新后,WP一直在唠叨更新的版本。为什么?

时间:2014-08-13 作者:Geert

我通过Git将WP更新为3.9.2版(目前是最新版本),运行良好。然而,在管理中,它不断告诉我“有更新的版本可用”。经过一些挖掘,似乎与语言包有关。我有WPLANG 设置为nl_NL.

wp-includes/update.php 文件wp_version_check() 使用以下URL对照WordPress服务器检查更新版本:

http://api.wordpress.org/core/version-check/1.7/?version=3.9.2&php=5.5.11&mysql=5.5.15&local_package=&blogs=1&users=2&multisite_enabled=0&locale=nl_NL

单击它,您会注意到它提供了一个状态为“upgrade”的响应,但版本是相同的!?如果删除末尾的locale参数或将其保留为空(下面的URL),您将看到它将以“latest”的状态值回答,因此不会触发更新nags。

http://api.wordpress.org/core/version-check/1.7/?version=3.9.2&php=5.5.11&mysql=5.5.15&local_package=&blogs=1&users=2&multisite_enabled=0&locale=

我尝试刷新WP缓存(更新瞬态),但没有任何变化。有人知道这是怎么回事吗?谢谢

2 个回复
最合适的回答,由SO网友:Dan Bough 整理而成

问题是local_package 在URL中。

起初我认为这可能是一个bug。以前也曾报告过类似问题(参见herehere.

然后我偶然发现comment in trac ticket 8729 其中,用户nbachiyski解释了本地化应该如何工作:

有两种方法可以本地化WordPress:

删除一些翻译文件

下面是整个过程的工作原理:

当前区域设置和安装的当前本地化包都会发送到API您可以install the Dutch version of WordPress 或者隐藏它的更新(/wp-admin/update-core.php> 隐藏此更新)。

SO网友:Geert

丹的回答让我走上了正确的道路。除了语言文件,a localized WP package also creates the $wp_local_package variable in wp-includes/version.php. 如果设置了该变量,则其值将包含在版本检查URL中,然后响应将正确表示您使用的是最新版本:

http://api.wordpress.org/core/version-check/1.7/?version=3.9.2&php=5.5.11&mysql=5.5.15&local_package=nl_NL&blogs=1&users=2&multisite_enabled=0&locale=nl_NL

因为我是通过Git更新WP的,所以安装本地化包不是一个选项。我正在手动更新语言文件。在这种情况下,为了摆脱更新nag,您可以定义$wp_local_package 你自己在你的wp-config.php 文件这将使WP认为您始终在运行最新的本地化软件包:

define(\'WPLANG\', \'nl_NL\');
$wp_local_package = WPLANG; // Don’t forget to manually update the language files now

结束

相关推荐

Updates for a private plugin?

如果我写一个私有插件,有没有办法使用WordPress自动更新机制来更新它 我想封装这个功能,但它是我自己的5个博客特有的,所以它不是公共插件资源的好候选。但我喜欢这种简单的更新机制 有没有办法做到这一点