web-dev-qa-db-fra.com

Un thème enfant doit-il partager la même ligne d'options de thème que le parent ou doit-il avoir sa propre ligne d'options?

Je développe un thème qui utilise le cadre d'options de thème de PSN pour ajouter certaines options de thème. Naturellement, la structure des options de thème crée une seule ligne dans la base de données dans laquelle sont stockées les options du thème.

Si je crée un thème enfant du parent, il partage les mêmes options de thème que le parent, ce qui m'amène à ma question:

Un thème enfant doit-il partager la même ligne d'options de thème que le parent ou doit-il avoir sa propre ligne d'options? Y a-t-il une raison pour laquelle l'un serait meilleur que l'autre?

S'ils sont partagés et que vous avez basculé entre les deux thèmes, vos options seraient intactes. Cela peut être formidable si tel était le comportement souhaité. D'autre part, vous pouvez vous donner beaucoup de mal à personnaliser le thème enfant en pensant qu'il est indépendant, à revenir au parent et à trouver vos modifications remplacées. J'ai de la difficulté à choisir l'un par rapport à l'autre. Quelles sont vos pensées?

1
Andrew

Ni.

Les options de thème doivent être stockées en tant que mods de thème, en utilisant get_theme_mod et set_theme_mod .

En interne, ces options correspondent à des options, mais il s'agit du moyen officiel de stocker des options spécifiques à un thème. Ainsi, lorsque vous changez de thème, vous n'obtenez pas de conflit, et vos paramètres sont conservés pour toute modification ultérieure. C'est l'adage classique de "quelqu'un d'autre a résolu ce problème pour moi, c'est leur problème maintenant"

Mais si vous persistiez à utiliser les options, je vous conseillerais de préfixer toutes vos options avec le nom de votre thème et de ne pas partager les options entre enfant et parent. La définition d’options de thèmes enfants ne devrait pas affecter un site lors du retour à un thème parent.

Cependant, il peut y avoir des cas où il est avantageux, alors faites preuve de discernement (aka, utilisez set/get_theme_mod).

Vous pouvez en savoir plus sur cette API ici

2
Tom J Nowell