web-dev-qa-db-fra.com

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

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

  • Widgets
  • Les menus

Au moins c'est ce que j'ai découvert jusqu'à présent:

Widgets

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

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

Les menus

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

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

2
kraftner

Après quelques recherches, cette réponse est devenue un peu plus longue que prévu, mais voici l'essentiel:

TL; DR: le placement de menu et le placement/ordre de widgets sont enregistrés par thème et peuvent donc être restaurés lors du changement de thème. Ceci n'inclut pas les paramètres individuels des menus et des widgets. Par conséquent, 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 par thème. Cela ne signifie pas qu'il n'y a aucune autre chose pouvant être sauvegardée par thème ou qui change ou se casse lors du changement de thème. Une liste courte et non exhaustive de choses pouvant être enregistrées, modifiées ou interrompues lors du changement de thème:

  • Types de messages personnalisés (enregistrés dans un thème mais pas dans l'autre)
  • Codes courts (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 être modifié lors du passage à un thème enfant, par exemple)
  • Plugins (non supportés par le nouveau thème)
  • ...

Maintenant que nous en avons terminé, examinons les détails des menus et des widgets.

Les menus

En réalité, 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 (Sites thématiques A1 et A2)
  • Thème B (Emplacements 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. Aucune association définie pour ce thème:

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

Nous supprimons maintenant M1 qui concerne les thèmes A et B. Par conséquent, si nous passons à nouveau au thème B, nous n’avons que:

M2 -> B2

M3 -> inactif

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

Animation of what happens to menus when switching themes

Les pièges

  • Comme déjà dit, la seule chose qui est sauvegardée par thème est 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 pour enfants sont traités comme des thèmes différents. Ainsi, si vous configurez tous vos menus, puis basculez vers votre thème enfant, vous devrez réassocier les menus aux emplacements de thème.

Widgets

Avec Widgets, la situation est un peu différente et même si elle n’est pas beaucoup plus complexe, elle est encore plus source de confusion.

La principale différence est que, avec les menus, ces groupes d'éléments de menu existent indépendamment de leur utilisation dans les thèmes. Au contraire de Widgets, cette étape intermédiaire indépendante du thème n'existe pas. Les widgets sont directement affectés aux zones de widgets spécifiques à un thème. Donc, changer de thème peut causer un peu plus de dégâts qu'avec Menus. Récapitulons encore:

  1. Il y a des widgets
  2. Il y a des zones de widget (a.k.a Sidebars)
  3. Les widgets peuvent être associés à des zones de widgets dans le backend WordPress sous Apparence> Widgets
  4. Ces associations sont ensuite sauvegardées par thème.

Ce qui se passe sur le changement de thème est la suivante:

  1. Si le nouveau thème a un nombre différent de zones de widgets, les widgets sont déplacés en fonction de leur ordre d'ignorance des identifiants. Ainsi, peu importe comment les zones de widget sont nommées, ce qui était 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 les zones inactives de la barre latérale.
  3. Dans ce processus de changement de thème avant que toute modification soit effectuée, l'ancienne configuration est enregistrée avec l'ancien thème.

Regardons à nouveau un exemple:

  • Widgets W1, W2, W3, W4
  • Thème A (Zones Widget en haut, à droite, en bas)
  • Thème B (Zones de widget HEADER, FOOTER)

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

W1 -> TOP

W2 -> DROIT

W3 -> BAS

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

W1 -> HEADER

W2 -> PIED

W3 -> sidebar inactif

Nous changeons maintenant ceci en:

W1 -> HEADER

W2 -> PIED

W3 -> PIED

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

W1 -> TOP

W2 -> DROIT

W3 -> BAS

Maintenant, nous supprimons W3 qui concerne les thèmes A et B. Par conséquent, si nous passons à nouveau au thème B, nous n’avons que:

W1 -> HEADER

W2 -> PIED

J'ai de nouveau créé une animation pour illustrer tous ces changements:

Animation of what happens to widgets when switching themes

Piège

  • De nouveau, comme pour les menus, la seule chose qui est sauvegardée par thème est l’emplacement et l’ordre des widgets. Si vous modifiez ou supprimez un widget, ce changement aura une incidence globale sur ce widget, quel que soit le thème actif.

J'ai essayé de le rendre le plus clair et le plus complet possible, mais si vous avez quelque chose à ajouter ou des commentaires sur les animations, veuillez laisser un commentaire ou archiver une modification!

1
kraftner