J'ai mis en place un système de composant, en reprenant ce que j'avais fait à l'origine pour les module.
Je pense que ça ne fait pas de mal de commencer à architecturer un peu le truc. Le thème grossi et je commence à avoir du mal à m'y retrouver. Je détaille un peu pour éviter les questions et les débats.
Le dossier component à le même rôle que dans l'architexcture classique component, domain, framework. Il continent tous les composants qui pourrait être utilisé dans un projet Wordpress différent.
Pour ce genre de composant, la logique, la configuration,le template, le style et le javascript sont fortement couplés. Ça n'a pas de sens de les séparer et ça nous oblige à chercher tous les dossier. Du coup j'ai fait en sorte de pouvoir tout rassembler.
En héritant de BaseComponent vous pouvez utiliser votre composant en tant que widget ou l'afficher directement dans un template.
La configuration se fait grâce à la méthode get_options qui sert pour la configuration en tant que widget et/ou dans le panneau de personnalisation du thème de l'admin. Les mêmes méthodes sont appelé quelque soit la manière dont il est affiché.
Pour voir un exemple, vous pouvez regarder la navbar;
J'ai mis en place un système de composant, en reprenant ce que j'avais fait à l'origine pour les module. Je pense que ça ne fait pas de mal de commencer à architecturer un peu le truc. Le thème grossi et je commence à avoir du mal à m'y retrouver. Je détaille un peu pour éviter les questions et les débats.
Le dossier
component
à le même rôle que dans l'architexcture classiquecomponent
,domain
,framework
. Il continent tous les composants qui pourrait être utilisé dans un projet Wordpress différent.Pour ce genre de composant, la logique, la configuration,le template, le style et le javascript sont fortement couplés. Ça n'a pas de sens de les séparer et ça nous oblige à chercher tous les dossier. Du coup j'ai fait en sorte de pouvoir tout rassembler.
En héritant de
BaseComponent
vous pouvez utiliser votre composant en tant que widget ou l'afficher directement dans un template.La configuration se fait grâce à la méthode
get_options
qui sert pour la configuration en tant que widget et/ou dans le panneau de personnalisation du thème de l'admin. Les mêmes méthodes sont appelé quelque soit la manière dont il est affiché.Pour voir un exemple, vous pouvez regarder la navbar;