Interrogation(s) concernant les « bonnes » pratiques ds la construction d’un thème (Créer un compte)

  • WordPress :4.6.1
  • Statut : hors support
Affichage de 1 message (sur 1 au total)
  • Auteur
    Messages
  • #1609702
    Mooks
    Participant
    Padawan WordPress
    87 contributions

    Bonsoir,

    Avant de construire mon custom theme, je suis passé par quelques frameworks, puis par quelques thèmes que je modifiais à ma sauce avec un thème enfant. Et malgré mes observations sur la construction « standard » d’un thème, j’ai rechigne à procéder de la sorte par souci de clarté dans mon code au sein de mon custom theme 100% fait maison. Mais ai-je raison? Ai-je tord? Ou ni l’un ni l’autre du moment que le dev s’y retrouve?

    Exemple : l’utilisation des hooks pour la structure du thème

    J’ai souvent vu des thèmes utilisant des hooks pour tout et n’importe. Le dernier en date, dont je tairais le nom, était à peu près construit de la sorte (pour les single.php, page.php etc…) :

    • get_header(); (OK)
    • Le code HTML pour les différents containers (OK)
    • Un get_template_part(); (soit, je lui trouve une utilité moyenne me concernant)
    • Puis un do_action(); (et là, ca commence à être le foutoir pour débugger)
    • on repète quelques fois ces actions, et on arrive à la cloture avec le get_footer();

    Avec un schéma de ce type, le jour où je dois débugger parce que j’ai oublié de fermer une balise, ou que j’ai foirer qqc dans ma fonction, bah en y allant par étape, je me retrouve avec plus d’étapes pour chercher l’erreur (et donc perte de temps). Je commence par mon single.php… pour confirmer que c’est le template_part(‘content’)… dans lequel je vois un do_action();… qu’il va falloir que je cherche à nouveau. Et le pire dans ces communes pratiques de hooks dans les thèmes, c’est qu’ils sont répartis dans différents fichiers (par souci d’organisation), mais au final créé bien souvent plus de confusion que de clarté. Vous l’aurez compris, on a ici 4 étapes minimum à se coltiner pour trouver l’erreur. Mais le pire dans tout cela, c’est aussi la construction d’un thème avec cette pratique, qui segmentarise beaucoup trop à mon avis, et je ne vois pas (du moins pour le moment) comment on peut gagner du temps en terme de développement en procédant de la sorte.

    En l’état actuel, je procède différemment: tout est segmentarisé également, bien à part dans des fichiers/dossiers/fonctions spécifiques, mais à 10000 lieux de ces hooks à tout va. Chez moi, pour mon single.php, ca ressemble à ça :

    	// @ header.php : Doctype + <head> + + wp_head() + body_start()
    get_header();

    // Header du contenu
    if (function_exists ( 'alt_content_header' ) ) {
    alt_content_header();
    }

    // Début du Contenu
    if (function_exists ( 'alt_content_start' ) ) {
    alt_content_start();
    }

    // Contenu spécifique pour post
    if (function_exists ( 'alt_content_post' ) ) {
    alt_content_post();
    }

    // Fin du Contenu
    if (function_exists ( 'alt_content_end' ) ) {
    alt_content_end();
    }

    // @ footer.php :
    get_footer(); ?>

    Au moindre problème dans mon code, je sais où me diriger : dans mon dossier « template-elements » dans lequel j’ai un fichier « global-html-structure.php ». Plusieurs dossiers sont présents à cet endroit avec les différentes fonctions utilisées classifiés par ELEMENTS (un peu comme en CSS, où l’on a recours de plus en plus à multiplier la création d’éléments CSS plutôt que de répéter inlassablement du code CSS). Sur mon thème, c’est pareil : j’ai un dossier regroupant mes fonctions d’automatisation des tâches d’édition, un dossier regroupant mes fonctions de génération de menu, un dossier dédié à tout ce qui est gestion des CPT et taxonomies etc…

    Petite question au final : y a-t-il réellement une utilité incontestable pour les hooks dans la creation d’un thème? Ma façon de procéder « custom » me va très bien, mais en même temps je suis sensible aux bonnes pratiques en terme de coding. Parce que bon, voir dans certains thème que la génération d’une fiche auteur en fin d’article est un hook d’une after_content(), qui elle même est un hook de post_content(), qui elle même est un hook sur the_content(), franchement, ca me donne la nausée.

     

Affichage de 1 message (sur 1 au total)
  • Vous devez être connecté pour répondre à ce sujet.