Bonjour à tous,

J'aime bien développer de zéro des thèmes WordPress et je l'ai fait quelques fois depuis deux ou trois ans. Ensuite, j'avais rapidement essayé les thèmes de base Underscore et Components, j'en ai gardé un bon souvenir car, contrairement à la solution "tout faire depuis zéro", ces deux thèmes étaient pratiques :

• ils permettaient de ne rien oublier dans le développement du thème et du design
• se baser dessus accélérait considérablement le temps de développement d'un thème
• ils respectaient les bonnes pratiques WP
• le thème apportait déjà une structure HTML et une mise en page simpliste, qu'on pouvait quasi-toujours remodeler comme on voulait avec CSS/SCSS

Aujourd'hui, je rencontre plusieurs soucis : ces thèmes ne sont plus maintenus depuis un bout de temps, et WordPress a quand même bien changé ces dernières années, les utiliser aujourd'hui ne me semble pas une bonne idée... Je n'arrive pas à retrouver de projets similaires, suivis et encore maintenus par leurs auteurs, qui auraient la même philosophie, c'est à dire de fournir un thème de base simple et fonctionnel, dans lequel on peut mettre les mains dans les fichiers PHP et CSS. Peut-être que c'est dû au fait que WordPress se complexifie au fil des mises à jour, et qu'il est en train de prendre un certain tournant avec Gutenberg...

En tout cas, les starters thèmes que je trouve aujourd'hui sont assez lourds, intègrent Bootstrap, Foundation, d'autres frameworks... et ça ne m'intéresse pas vraiment. J'aime bien tout faire avec du CSS, ou encore mieux, SCSS, et CSS Grid et Flexbox me conviennent parfaitement pour réaliser des gabarits responsive ^^

Avez-vous des suggestions à proposer ?

Merci d'avance pour votre aide Smiley smile
Modérateur
Salut,

Toi qui aimes et sais faire les thèmes de zéro, pourquoi ne pas créer TA propre base qui va coller parfaitement à tout ce que tu veux faire ? C'est ce que j'ai fait et depuis bah je me régale. Un peu long au début (un peu plus que créer un thème car il faut savoir ce qu'il faut laisser ou enlever, ca nécessite quelques ajustements au fil des utilisations) mais après gros gains de temps comme tu dis et totale maitrise du code. A toi de le maintenir comme tu le souhaites et de le faire évoluer à ta guise. Pour moi ça a été le compromis ultime. Smiley smile
Salut Laurent, c'est une très bonne idée et tu as totalement raison (comme d'habitude Smiley lol )

Ne faisant pas de dév WordPress au quotidien, j'ai beaucoup de mal à faire une veille efficace et à suivre les nouveautés à implémenter. Je comptais donc sur un thème de base complet pour m'aider et aussi ne rien oublier...

En fait, ma grande crainte, c'est d'oublier des trucs dans le développement d'un thème, surtout au niveau du CSS Smiley lol

Comment fais-tu pour ne rien oublier ? WordPress donne dans son codex une checklist, assez indigeste de tous les points à vérifier... Sinon on en trouve d'autres plus légères, je ne sais pas si c'est suffisant ni à jour. T'en penses quoi ?

En tout cas, tu as raison, il est temps que je développe ma propre base, avec ma propre organisation, convention de nommage, etc. Je vais y passer du temps, mais je pense que je vais en gagner pour les futurs projets Smiley smile Et ce sera formateur aussi !
Modérateur
Loraga a écrit :
Je vais y passer du temps, mais je pense que je vais en gagner pour les futurs projets Smiley smile Et ce sera formateur aussi !

Finalement pas tant que ca hein, ca prend juste un peu plus de temps qu'un site (enfin pour moi).

Loraga a écrit :
En fait, ma grande crainte, c'est d'oublier des trucs dans le développement d'un thème, surtout au niveau du CSS Smiley lol
Comment fais-tu pour ne rien oublier ?

Alors, perso je ne suis pas fan du "je met tout dedans au cas ou pour ne rien oublier". Ma façon de procéder a été de rajouter au fur et a mesure ce dont j'avais besoin.

En gros j'ai profité d'un projet de site internet pour coder en double : un theme de base et le theme custom (fils du theme de base). En commençant par le theme de base, avec juste le reset CSS, sans archi poussée, des classes un peu basiques etc et en sortant tout ce qui était lié au projet (logo, image, architectures, couleurs etc) dans le theme fils au fur et a mesure.

Ensuite j'ai attaqué un autre site avec mon theme de base et j'ai du réarranger 2 ou 3 trucs (ah non tiens ca c'est du custom, ah tiens je mettrais bien ca par defaut, etc). Et au bout de 2 ou 3 site bah c'était assez convenable. A chaque fois je faisait une nouvelle version du theme de base et je l'upgrade sur les anciens projets si c'est pas bloquant.

Outre le CSS j'ai aussi fait ca sur des parties de html/php avec toujours la possibilité de les overider dans le theme fils. Et bien sur pas mal de fonction dans le function.php qui me suivent partout. Au final maintenant j'ai juste le CSS à taper et une ou deux structure de page custom selon les besoins du projet. Smiley smile

Du coup pour en revenir à la question, comment je fais pour ne rien oublier ? Je les oublie, je les rajoute quand j'en ai besoin et après je ne les oublie plus Smiley lol (et après a toi de choisir si c'est un truc a rajouter que pour un site ou pour tous)
Merci pour tes conseils et pour ton retour d'expérience Smiley smile
Je vais donc me créer ce thème de base, à faire évoluer au fil du temps.

Si j'ai bien compris, tu déploies systématiquement ton thème de base sur tous tes projets. Ce thème de base est simplement un socle commun, qui ne contient que la base du CSS, éventuellement une petite structure HTML de base (les fichiers archive.php, single.php, 404.php etc.) et les fonctions PHP communes du functions.php.

Depuis ce thème de base, tu crées alors un thème enfant, et c'est dans ce thème enfant que tu fais les modifs liées au projet (couleurs, CSS, etc. mais aussi fichiers de template pour la structure HTML, fonctions PHP particulières, etc.).

De cette façon, tu peux très facilement mettre à jour ton thème de base sur tous tes sites, sans impacter les thèmes enfants de chacun.

C'est tout simple comme façon de faire et ça me semble tout à fait efficace Smiley smile
Modérateur
C'est exactement ça.

Loraga a écrit :
Ce thème de base est simplement un socle commun, qui ne contient que la base du CSS, éventuellement une petite structure HTML de base (les fichiers archive.php, single.php, 404.php etc.) et les fonctions PHP communes du functions.php.

En fait il n'y a pas tant que ca de CSS et c'est surtout du PHP et du html. Y'a une base de CSS mais comme c'est principalement ca qui varie je t'avoue qu'au final j'en ai pas laissé bcp. Je ne l'ai pas sous le coude là mais je te dirais ce que j'ai laissé dedans si tu veux pour te faire une idée. Encore une fois c'est un fonctionnement qui me convient et qui colle a ma façon de coder et qui ne sera peut être pas adapté à toi hein !


Loraga a écrit :
Depuis ce thème de base, tu crées alors un thème enfant, et c'est dans ce thème enfant que tu fais les modifs liées au projet (couleurs, CSS, etc. mais aussi fichiers de template pour la structure HTML, fonctions PHP particulières, etc.).
De cette façon, tu peux très facilement mettre à jour ton thème de base sur tous tes sites, sans impacter les thèmes enfants de chacun.
C'est tout simple comme façon de faire et ça me semble tout à fait efficace Smiley smile

Alors moi ca me va parfaitement pour la maitrise du code et la suppression de dépendance (cf ton soucis de thème non maintenu)

MAIS

(oui il y a un mais) il me reste quand même un gros doute quand à la perf. Je ne sais pas si faire un thème fils qui hérite de d'un thème de base est très performant... surtout que je suis allé assez loin dans le découpage de la structure html en php (template parts) pour que ce soit paramétrable finement (je pourrai te montrer aussi).
Je ne sais pas si j'aurais mieux fait de copier coller le thème de base et le modifier directement à chaque fois. Par contre on perd la mise a jour facile comme tu l'as souligné.
Je ne sais pas non plus si j'ai la bonne façon de faire (= la plus performante) pour importer le CSS ou les template parts... après la perf poussée n'a jamais été mon soucis pour le moment et je n'ai pas vu de gros soucis la dessus (surtout que j'y gagne largement en code généré).


Autres REX : j'en avais profité pour virer les header / footer par défaut de WP parce qu'ils injectaient d'office JQuery alors que je l'utilise jamais et plein d'autres trucs. Ca marche très bien jusqu'au moment ou tu veux intégrer un plugin extérieur (plus rien ne marchait et j'ai passé plusieurs jours avant de faire le lien hahaha). Donc au final je l'ai paramétré il me semble : pour des petits sites sans plugin je le vire, avec 2 ou 3 plugin je rajoute les dépendances à la main si c'est faisable ou je vois pour redévelopper les plugins (en plus simple mais du coup en plus maléable) et pour les gros sites je remet le header et je me fait pas chier.

On peut se MP si tu veux plus de précision.

Bonne soirée Smiley smile
Modifié par _laurent (06 Dec 2021 - 18:08)
_laurent a écrit :
Y'a une base de CSS mais comme c'est principalement ca qui varie je t'avoue qu'au final j'en ai pas laissé bcp. Je ne l'ai pas sous le coude là mais je te dirais ce que j'ai laissé dedans si tu veux pour te faire une idée.

Par curiosité, je veux bien y jeter un coup d'oeil, mais je ne veux abuser ni de ton temps ni de ta gentillesse Smiley smile


_laurent a écrit :
Je ne sais pas si faire un thème fils qui hérite de d'un thème de base est très performant...

C'est un sujet qui a déjà été abordé de nombreuses fois sur le Stack Exchange de WordPress. La réponse admise est "ça dépend" Smiley lol
ça dépend principalement de la façon dont le thème parent à été développé, il semblerait qu'on puisse y faire diverses optimisations. Lesquelles ? J'ai un peu de mal à tout comprendre mais dès que j'ai un peu de temps j'essaie de lister tout ce que je trouve de cohérent.
Idem côté CSS, notamment avec les @import...
Après, je trouve le template hierarchy de WordPress bien foutu : au sein d'un thème enfant, on a tout intérêt à recréer les fichiers single.php, archive.php, taxonomy.php et autres puisque WordPress cherche toujours d'abord dans le thème enfant quoi afficher.

_laurent a écrit :
surtout que je suis allé assez loin dans le découpage de la structure html en php (template parts) pour que ce soit paramétrable finement (je pourrai te montrer aussi).

Appeler et inclure de nombreuses fois des templates part avec get_template_part() ne me semble pas être un sérieux problème de performance. Le seul petit "souci", c'est que cette fonction effectue une boucle dans le répertoire du thème pour trouver le fichier à inclure, donc si tu as énormément de fichiers, oui, ça peut ralentir ton site, mais à mon avis ça reste négligeable.

_laurent a écrit :
après la perf poussée n'a jamais été mon soucis pour le moment et je n'ai pas vu de gros soucis la dessus (surtout que j'y gagne largement en code généré).

Ce n'est pas mon objectif non plus, mais si on peut optimiser, c'est bien. Après, si le projet en question demande un beau score de performances, WordPress ne sera probablement pas le meilleur outil ^^

_laurent a écrit :
j'en avais profité pour virer les header / footer par défaut de WP parce qu'ils injectaient d'office JQuery alors que je l'utilise jamais et plein d'autres trucs. Ca marche très bien jusqu'au moment ou tu veux intégrer un plugin extérieur

J'ai rencontré le même souci ! J'ai alors laissé Jquery, au cas où... J'avoue que j'aimerais bien pouvoir toujours m'en passer, ce n'est pas toujours évident de recréer un plugin...
Par contre, ce sont les émojis que je vire à chaque fois Smiley lol
Modérateur
Loraga a écrit :
Par curiosité, je veux bien y jeter un coup d'oeil, mais je ne veux abuser ni de ton temps ni de ta gentillesse Smiley smile

Ca marche je te sors ca a l'occasion Smiley ravi


Loraga a écrit :
C'est un sujet qui a déjà été abordé de nombreuses fois sur le Stack Exchange de WordPress. La réponse admise est "ça dépend" Smiley lol
ça dépend principalement de la façon dont le thème parent à été développé, il semblerait qu'on puisse y faire diverses optimisations. Lesquelles ? J'ai un peu de mal à tout comprendre mais dès que j'ai un peu de temps j'essaie de lister tout ce que je trouve de cohérent.
Idem côté CSS, notamment avec les @import...

Ah cool merci pour le tuyau je regarderai alors... j'imagine que c'est du coté des enqueue que ca se passe coté script et CSS mais pour le reste aucune idée


Loraga a écrit :
Après, je trouve le template hierarchy de WordPress bien foutu : au sein d'un thème enfant, on a tout intérêt à recréer les fichiers single.php, archive.php, taxonomy.php et autres puisque WordPress cherche toujours d'abord dans le thème enfant quoi afficher.

C'est pas con je vais regarder de ce coté


Loraga a écrit :
Appeler et inclure de nombreuses fois des templates part avec get_template_part() ne me semble pas être un sérieux problème de performance. Le seul petit "souci", c'est que cette fonction effectue une boucle dans le répertoire du thème pour trouver le fichier à inclure, donc si tu as énormément de fichiers, oui, ça peut ralentir ton site, mais à mon avis ça reste négligeable.
Non effectivement y'en a pas tant que ça


Loraga a écrit :
Ce n'est pas mon objectif non plus, mais si on peut optimiser, c'est bien. Après, si le projet en question demande un beau score de performances, WordPress ne sera probablement pas le meilleur outil ^^

Hahahaha c'est clair Smiley lol

Bonne soirée Smiley ravi