Pourquoi est-ce que je perds les personnalisations de mon thème lors de la mise en ligne ?

Lorsque vous mettez votre site WordPress en ligne, certaines de vos configurations d'apparence sont perdues. Parmi les configurations qui n'ont pas suivi, on retrouve l'image d'entête, les couleurs personnalisées, le menu à utiliser, etc.

Pour remettre le tout en état, vous avez deux choix :

  • refaire les configurations à la main;
  • modifier la base de données.

Dans cet article, je vais vous montrer comment vous y prendre avec la seconde option.

▼Publicité

Si vous êtes hésitant, rassurez-vous. Avant de procéder, prenez une bonne copie de sécurité de votre base de données. Ainsi, vous pourrez remettre les choses en place si jamais les choses ne se passaient pas bien...

Mais pourquoi ces configurations sont-elles perdues ?

Sous WordPress, les configurations effectuées sous l'onglet Apparence sont enregistrées dans la table wp_options. Pour ce faire, elles sont sérialisées puis stockées dans le champ option_value d'un enregistrement dont le champ option_name débute par theme_mods_ suivi du nom du thème.

Configuration du thème enregistrées dans la BD

Voici, comme illustré dans l'image précédente, un exemple de ce qu'on peut trouver dans un tel champ :

a:5:{i:0;b:0;s:18:"nav_menu_locations";a:1:{s:7:"primary";i:2;}s:12:"header_image";s:96:"http://127.0.0.1/gagnonannie-wordpress2015/wp-content/uploads/2015/11/ImageEnteteAnnieGagnon.png";s:17:"header_image_data";O:8:"stdClass":5:{s:13:"attachment_id";i:16;s:3:"url";s:96:"http://127.0.0.1/gagnonannie-wordpress2015/wp-content/uploads/2015/11/ImageEnteteAnnieGagnon.png";s:13:"thumbnail_url";s:96:"http://127.0.0.1/gagnonannie-wordpress2015/wp-content/uploads/2015/11/ImageEnteteAnnieGagnon.png";s:6:"height";i:1300;s:5:"width";i:954;}s:16:"background_color";s:6:"f4f3d2";}

L'opération de sérialisation crée une série de triplets sous la forme :

    type:longueur:valeur

Le problème des personnalisations perdues est dû à la présence de l'URL dans des triplets de type string (s). Lorsqu'on change l'URL, la longueur ne correspond plus à ce qui est écrit dans le triplet alors la configuration est ignorée.

Pour corriger la situation

Avant de procéder à la mise en ligne, vous avez modifié le script de votre base de données afin de changer chaque occurrence de l'URL en développement pour le nom de domaine qui sera utilisé en ligne.

Par exemple, vous avez changé http://127.0.0.1/gagnonannie-wordpress2015 pour http://mondomaine.com.

Ceci est parfait pour ajuster presque toutes les fonctionnalités du site. Mais dans le cas des configurations d'apparence, vous devrez également ajuster la longueur des chaînes sérialisées. 

Ex : 

s:96:"http://127.0.0.1/gagnonannie-wordpress2015/wp-content/uploads/2015/11/ImageEnteteAnnieGagnon.png"

deviendra : 

s:75:"http://mondomaine.com/wp-content/uploads/2015/11/ImageEnteteAnnieGagnon.png"

Pour plus d'information

« Data portability and data serialization in WordPress ». WP Garage. http://wpgarage.com/tips/data-portability-and-data-serialization-in-wordpress/

« Theme Options lost when moving to new domain ». WordPress. https://wordpress.org/support/topic/theme-delicate-theme-options-lost-when-moving-to-new-domain

Merci de partager ! Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestShare on StumbleUponEmail this to someone
Catégories