WordPress : Quels paramètres/options sont enregistrés par thème et comment cela affecte-t-il le changement de thème ?

Publié par Jean-Michel le

J’ai réalisé que lors du changement de thème (dans mon cas vers un thème enfant), certaines choses ne restent pas les mêmes :

  • Widget
  • Menus

C’est du moins ce que j’ai découvert jusqu’à présent :

Widget

Ne perdez pas les widgets lorsque vous changez de thème

Évitez de perdre des widgets lorsque vous changez de thème

Menus

Basculer vers les noms de menu des sauts de thème enfants

Ma question est de savoir s’il y a autre chose qui est stocké sur la base de thèmes actifs et où je peux trouver plus d’informations sur tout ce comportement.

Solution n°1 trouvée

Après avoir fait quelques recherches, cette réponse est devenue un peu plus longue que prévu, mais c’est l’essentiel :

TL; DR : le placement des menus et le placement/l’ordre des widgets sont enregistrés par thème et peuvent donc être restaurés lors du changement de thème. Cela n’inclut pas les paramètres individuels des menus et des widgets, donc si vous les modifiez, ces modifications sont globales pour votre site WordPress et ne peuvent pas être annulées.


Avant d’entrer dans les détails de tout cela, permettez-moi de préciser une chose : ce sont les choses qui sont enregistrées par défaut sur la base d’un thème. Cela ne signifie pas qu’il n’y a pas d’autres choses qui pourraient être enregistrées sur une base de thème ou qui changent ou se cassent lors du changement de thème. Juste une liste courte et non exhaustive des choses qui pourraient être enregistrées, modifiées ou qui se cassent lors du changement de thème :

  • Types de publication personnalisés (qui sont enregistrés dans un thème mais pas dans l’autre)
  • Shortcodes (enregistrés dans un thème mais pas dans l’autre)
  • Paramètres de thème personnalisés d’un thème (certains thèmes enregistrent leurs paramètres sur une base de thème qui peut ne pas passer par exemple lors du passage à un thème enfant)
  • Plugins (qui ne sont pas pris en charge par le nouveau thème)
Lire également:  Wordpress : get_stylesheet_directory() renvoie le mauvais URI... localhost/en utilisant des vhosts

Maintenant que nous avons résolu ce problème, examinons les détails des menus et des widgets

Menus

En fait, la structure de données derrière les menus n’est pas triviale. Pour plus de détails, regardez cette réponse

Cela étant dit, je vais récapituler les principales choses pertinentes :

  1. Les menus sont des ensembles nommés d’éléments de menu
  2. Les emplacements de thème sont des emplacements nommés définis dans un thème où vous pouvez placer des menus
  3. Les menus peuvent être associés à ces emplacements de thème dans le backend WordPress sous Apparence > Menus
  4. ces associations sont ensuite sauvegardées par thème

Regardons un exemple :

  • Menus M1, M2, M3
  • Thème A (emplacements thématiques A1 et A2)
  • Thème B (Lieux thématiques B1, B2 et B3)

Vous avez le thème A actif avec ces associations définies :

M1 -> A1

M2 -> A2

M3 -> A2

Vous activez maintenant le thème B. Ce thème n’a pas encore défini d’association :

M1 -> inactif

M2 -> inactif

M3 -> inactif

Nous changeons maintenant ceci en :

M1 -> B2

M2 -> B2

M3 -> inactif

Si nous revenons au thème A, nous aurons à nouveau :

M1 -> A1

M2 -> A2

M3 -> A2

Maintenant, nous supprimons M1 qui affecte le thème A et le thème B. Par conséquent, si nous passons à nouveau au thème B, nous n’aurons que :

M2 -> B2

M3 -> inactif

J’ai créé une animation pour illustrer tous ces changements :

Lire également:  Wordpress : Comment différer conditionnellement les scripts en fonction du nom de la page ?

Animation de ce qui arrive aux menus lors du changement de thème

Pièges

  • Comme déjà dit, la seule chose qui est enregistrée par thème sont ces associations. Si vous modifiez ou supprimez un menu, ce changement sera global et affectera ce menu, quel que soit le thème actif.
  • Les thèmes enfants sont traités comme étant des thèmes différents. Donc, si vous configurez tous vos menus, puis passez à votre thème enfant, vous devrez réassocier les menus aux emplacements de thème.

Widget

Avec les widgets, la situation est un peu différente et même si elle n’est pas radicalement plus complexe, elle est encore plus confuse.

La principale différence est qu’avec les menus, ces regroupements d’éléments de menu existent indépendamment de leur utilisation dans les thèmes. Avec les Widgets au contraire cette étape intermédiaire indépendante du Thème n’existe pas. Les widgets sont directement affectés à des zones de widgets spécifiques à un thème. Donc, changer de thème peut causer un peu plus de désordre qu’avec les menus. Récapitulons encore :

  1. Il y a des widgets
  2. Il y a des zones de widgets (aka Sidebars)
  3. Les widgets peuvent être associés à des zones de widgets dans le backend WordPress sous Apparence > Widgets
  4. Ces associations sont ensuite enregistrées sur une base thématique.

Voici ce qui se passe lors du changement de thème :

  1. Si le nouveau thème a un nombre différent de zones de widgets, les widgets sont déplacés selon l’ordre en ignorant les identifiants. Ainsi, quelle que soit la façon dont les zones de widget sont nommées, ce qui se trouvait dans la première zone de widget du thème A sera dans la première zone de widget du thème B.
  2. Les widgets qui n’ont pas de zone de widget correspondante sont déplacés vers des zones de barre latérale inactives.
  3. Dans ce processus de changement de thème avant toute modification, l’ancienne configuration est enregistrée avec l’ancien thème.
Lire également:  Wordpress : matisse theme show extraits pas tout le contenu

Reprenons un exemple :

  • Widget W1, W2, W3, W4
  • Thème A (Zones Widget HAUT, DROITE, BAS)
  • Thème B (Zones Widget HEADER, FOOTER)

Vous avez le thème A actif avec ces associations définies :

W1 -> TOP

W2 -> DROITE

W3 -> BAS

Vous activez maintenant le thème B. Les widgets sont automatiquement transférés selon les règles mentionnées précédemment.

W1 -> EN-TÊTE

W2 -> PIED DE PAGE

W3 -> barre latérale inactive

Nous changeons maintenant ceci en :

W1 -> EN-TÊTE

W2 -> PIED DE PAGE

W3 -> PIED DE PAGE

Si nous revenons au thème A, l’ancienne configuration est restaurée, nous aurons donc à nouveau ceci :

W1 -> TOP

W2 -> DROITE

W3 -> BAS

Maintenant, nous supprimons W3 qui affecte le thème A et le thème B. Par conséquent, si nous passons à nouveau au thème B, nous n’aurons que :

W1 -> EN-TÊTE

W2 -> PIED DE PAGE

J’ai à nouveau créé une animation pour illustrer tous ces changements :

Animation de ce qui arrive aux widgets lors du changement de thème

Piège

  • Encore une fois, comme pour les menus, la seule chose qui est enregistrée par thème est le placement et l’ordre des widgets. Si vous modifiez ou supprimez un widget, cette modification sera globale et affectera ce widget, quel que soit le thème actif.

J’ai essayé de rendre cela aussi clair et complet que possible, mais si vous avez quelque chose à ajouter ou des commentaires sur les animations, veuillez laisser un commentaire ou déposer une modification !

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *