web-dev-qa-db-fra.com

Après mise à jour WP continue à harceler au sujet d'une version plus récente. Pourquoi?

J'ai mis à jour WP vers la version 3.9.2 (actuellement la plus récente) via Git, qui fonctionne correctement. Cependant, dans l'admin, il continue de me dire "une version plus récente est disponible". Après quelques recherches, il semble que cela soit lié au pack de langue. WPLANG est défini sur nl_NL.

Dans le fichier wp-includes/update.php, wp_version_check() vérifie le serveur WordPress à la recherche de versions plus récentes, en utilisant une URL comme celle-ci:

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

Cliquez dessus et vous remarquerez qu'il offre une réponse avec le statut "upgrade", mais la version est la même!? Si vous supprimez l'argument des paramètres régionaux à la fin ou si vous le laissez vide (URL ci-dessous), vous verrez qu'il répondra avec une valeur de statut "dernière" et ne provoquera donc pas de mise à jour.

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=

J'ai essayé de vider le cache WP (mises à jour transitoires) mais rien ne change. Quelqu'un a ce qui se passe ici? Merci.

8
Geert

Le problème est qu'il n'y a pas de valeur pour local_package dans l'URL.

Au début, j'ai pensé que cela pourrait être un bug. Des problèmes similaires ont déjà été signalés (voir here et here .

Je suis ensuite tombé sur comment dans le ticket trac 8729 où l'utilisateur nbachiyski explique comment la localisation devrait fonctionner:

Il existe deux manières de localiser WordPress:

  1. Déposer des fichiers de traduction.
  2. Installez le paquet localisé.

Dans la mesure du possible, nous essayons d'appliquer la deuxième voie.

Alors, voici comment cela fonctionne:

  1. Les paramètres régionaux en cours et le package localisé en cours, installé, sont envoyés à l'API.
  2. Si un package localisé pour les paramètres régionaux de l'utilisateur est disponible et que l'utilisateur ne dispose pas du package localisé, l'utilisateur est invité à mettre à niveau ou à masquer la mise à jour.

Vous pouvez soit installer la version néerlandaise de WordPress ou masquer les mises à jour correspondantes (/wp-admin/update-core.php> Masquer cette mise à jour).

6
Dan Bough

La réponse de Dan m'a mis sur la bonne voie. En plus des fichiers de langue, un package localisé WP crée également la variable $wp_local_package dans wp-includes/version.php. Si cette variable est définie, sa valeur sera incluse dans l'URL de contrôle de version et la réponse indiquera alors correctement que vous utilisez la dernière version:

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

Depuis que je mets à jour WP via Git, l’installation de paquetages localisés n’est pas une option. Je mets à jour manuellement les fichiers de langue. Dans ce cas, vous pouvez définir vous-même le $wp_local_package dans votre fichier wp-config.php afin de vous en débarrasser. Ceci fera penser à WP que vous utilisez toujours le dernier package localisé:

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