После обновления WP продолжает ворчать о новой версии. Почему?

8

Я обновил WP до версии 3.9.2 (в настоящее время самой последней) через Git, которая работает нормально. Тем не менее, в админке он продолжает говорить мне «доступна более новая версия». После некоторого копания это как-то связано с языковым пакетом. Я WPLANGнастроен на nl_NL.

В wp-includes/update.phpфайле wp_version_check()проверяет на сервере WordPress для новых версий, используя URL-адрес, как это:

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

Нажмите на нее, и вы заметите, что она предлагает ответ со статусом «обновление», но версия такая же !? Если вы удалите аргумент локали в конце или оставите его пустым (URL-адрес ниже), вы увидите, что он ответит со значением статуса «последний» и, следовательно, не будет вызывать обновления.

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 (обновить переходные процессы), но ничего не изменилось. Кто-нибудь понимает, что здесь происходит? Спасибо.

Герт
источник

Ответы:

6

Проблема в том, что local_packageв URL нет значения .

Сначала я подумал, что это может быть ошибкой. О подобных проблемах уже сообщалось ранее (см. Здесь и здесь .

Затем я наткнулся на комментарий в trac ticket 8729, где пользователь nbachiyski объясняет, как должна работать локализация:

Существует два способа локализации WordPress:

  1. Оставьте несколько файлов перевода.
  2. Установите локализованный пакет.

По возможности мы стараемся применять 2-й способ.

Итак, вот как все это работает:

  1. Как текущая локаль, так и текущий локализованный пакет, установленные, отправляются в API.
  2. Если локализованный пакет для локали пользователя доступен, а у пользователя нет локализованного пакета, ему предлагается обновить или скрыть обновление.

Вы можете установить голландскую версию WordPress или скрыть обновления для нее ( /wp-admin/update-core.php> Скрыть это обновление).

Дэн Бау
источник
Спасибо тебе, Дэн. К сожалению, установка локализованного пакета для меня невозможна, так как я обновляю WP через Git. Вот почему я вручную обновляю файлы переводов. Однако ссылки на предоставленные вами билеты на трек мне очень помогли.
Герт
5

Ответ Дэна поставил меня на правильный путь. В дополнение к языковым файлам локализованный пакет WP также создает $wp_local_packageпеременную в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

Так как я обновляю WP через Git, установка локализованных пакетов не возможна. Я вручную обновляю языковые файлы. В этом случае, чтобы избавиться от обновлений, вы можете определить $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
Герт
источник