WordPress : Quels paramètres/options sont enregistrés par thème et comment cela affecte-t-il le changement de thème ?
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)
- …
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 :
- Les menus sont des ensembles nommés d’éléments de menu
- Les emplacements de thème sont des emplacements nommés définis dans un thème où vous pouvez placer des menus
- Les menus peuvent être associés à ces emplacements de thème dans le backend WordPress sous Apparence > Menus
- 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 :
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 :
- Il y a des widgets
- Il y a des zones de widgets (aka Sidebars)
- Les widgets peuvent être associés à des zones de widgets dans le backend WordPress sous Apparence > Widgets
- Ces associations sont ensuite enregistrées sur une base thématique.
Voici ce qui se passe lors du changement de thème :
- 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.
- Les widgets qui n’ont pas de zone de widget correspondante sont déplacés vers des zones de barre latérale inactives.
- Dans ce processus de changement de thème avant toute modification, l’ancienne configuration est enregistrée avec l’ancien thème.
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 :
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 !
0 commentaire