Quelques secrets du fichier functions.php

Plugin Wordpress

Plugin Wordpress

Marie-Aude

J'ai fait de la compta, de la finance, du juridique, j'ai été chef de projet SAP, j'ai fait de la photo, des voyages. Depuis 2007, je fais avec amour des sites webs pour les utilisateurs, qui se référencent bien et je vous aide à acquérir du trafic pertinent.

Vous aimerez aussi...

8 réponses

  1. Olivier dit :

    Merci pour tout ça. Il te reste à le compléter par ta sélection des meilleurs "hooks" à mettre dans le functions.php :-)

  2. Olivier dit :

    Encore moi...

    et que penses-​tu des optimisations détaillées sur http://www.screenfeed.fr/blog/accelerer-wordpress-en-divisant-le-fichier-functions-php-0548/ ?

  3. Marie-Aude dit :

    Pour les "meilleurs hooks", "stay tuned" ^^ (quoi qu'il n'y aura pas de révélations fracassantes)

    Pour l'autre article, en fait, pour d'autres raisons (séparer données et présentation) j'arrive à peu près à un même résultat. Mes plus gros functions.php doivent être en dessous de 500 lignes (avec toutes les lignes blanches pour bien aérer le code). 

    Après tout dépend de la façon de structurer son code. Si l'idée de séparer admin et frontend est séduisante, dans la pratique elle peut être assez pénible. Notamment en ce qui concerne toute la définition des customs, où je trouve plus facile d'avoir dans un fichier unique tout ce qui concerne un type de post ou de taxo que dans plusieurs. Et par exemple, dans la déclaration de ton type de post, tu créés les labels, pour l'admin comme pour le front-​end, et le slug pour le rewriting. 

    Il me semble aussi – mais je dis peut être une bourde – que le fichiers functions.php est en require_​once. A vérifier /​ confirmer /​ invalider par des experts. 

    De toute façon, les thèmes ayant les functions.php les plus obèses sont les thèmes à option grand public, Thesis, Genesis, Suffision... c'est une des raisons pour lesquelles je ne les aime pas trop.

  4. arena dit :

    Bjr,

    * tu as omis de parler des functions.php dans le cas d'un child theme.
    * "donnez des noms très spécifiques à vos fonctions" ou bien passer par une classe !

    • Marie-Aude dit :

      Bonjour,
      pour moi il n'y a pas de spécificités particulières dans le cas d'un thème enfant :) on "rajouter" ce qu'on veut, et souvent dans mon cas, on soustrait ... je passe les trois quarts de ce fichier functions.php à "unregister" les hooks tu thème parent...
      Oui on peut aussi passer par des classes, bien sûr

  5. Ozh dit :

    Bon article et bons conseils

    Concernant la séparation du functions.php, je trouve que c'est une bonne idée, et personnellement je fais ça avec tous mes plugins depuis longtemps. Non seulement cela permet un gain (souvent négligeable) en terme de rapidité d'execution et de mémoire utilisée, mais surtout cela facilite grandement la maintenance. C'est plus facile de chercher quelquechose et de l'éditer dans un des 3 fichiers de 100 lignes que dans un gros fichier de 300 lignes qui regroupe tout.

    Autre astuce non abordée dans cet article : plutôt que de faire
    if( function_​exists( 'montheme_​mafonction' ) )
    montheme_mafonction();
    on peut faire, dans un functions.php :
    add_​action( 'montheme_​mafonction', 'montheme_​mafonction' );
    et dans le theme lui-​même, simplement :
    do_​action( 'montheme_​mafonction' );
    Code plus simple dans le theme et si la fonction en question n'est plus disponible, aucune erreur générée. Plus d'infos et d'exemples sur ce principe : https://nacin.com/2010/05/18/rethinking-template-tags-in-plugins/

  6. Marie-Aude dit :

    Bonjour Ozh, et merci pour l'astuce, elle est excellente !

  7. Li-An dit :

    Bonjour Marie-​Aude, je tombe là-​dessus suite à l'article de BBXdesign. Je découvre notamment que l'on peut désactiver des fonctions d'un thème parent (et moi qui modifiais ça à la main !) et qu'il faut séparer les custom post. Faut que je regarde ça plus précisément.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.