Comment puis-je éviter que les mises à jour de thèmes WordPress modifient mes thèmes parents functions.php ?

Publié par Jean-Michel le

J’ai actuellement implémenté manuellement un code de suivi danswp-content/themes/genesis/header.php

Le code ressemble à ceci (raccourci):

<script>
  CODE HERE
<?php if (is_single()){CODE HERE}?>
  CODE HERE
</script>
</head>

Chaque fois que je mets à jour Genesis (le thème WordPress), ce code est perdu et je dois le rajouter manuellement.

Comment puis-je ajouter ce code via la functions.phpsection d’en-tête wp-content/themes/genesis/header.phpafin qu’il survive à une mise à niveau du thème WordPress – à quoi ressemblerait le code ?

Solution n°1 trouvée

Généralement, la solution pour modifier votre thème sans que vos modifications soient écrasées consiste à utiliser un thème enfant. Mais vous pouvez également créer un petit plugin qui ferait la même chose que vous voulez faire ici.

L’option que vous choisissez est généralement beaucoup plus importante pour le moment, mais si vous prévoyez d’autres changements à l’avenir, vous devez garder à l’esprit que :

  • les plugins servent à ajouter des fonctionnalités
  • les thèmes servent à contrôler l’apparence et la sensation des choses

Cela pourrait vous aider à décider quelle option est la meilleure à prendre maintenant (bien que vous puissiez facilement faire les deux, ou changer plus tard si vous le souhaitez :)).

Option 1 : Créer un thème enfant

Créez un nouveau dossier dans le wp-content/themesdossier (nommez-le comme vous voulez appeler votre nouveau thème), puis créez un style.cssdans ce dossier.

En haut style.css, vous devrez inclure des informations de définition pour votre thème. Vous pouvez copier le format pour cela à partir du thème Genesis, changez simplement le nom et d’autres détails afin qu’il soit clair lorsque vous allez l’activer qu’il s’agit de votre thème.

La clé ici est alors d’ajouter une nouvelle ligne à cette lecture d’informations sur le thème :

Template: genesis

Cette ligne indique à WordPress que votre thème sera un thème enfant de Genesis, et tout ce que votre thème ne fournit pas, WordPress le récupérera dans Genesis.

La clé ici est alors de ne remplacer que ce que vous voulez et de laisser le reste se replier sur Genesis.

Ainsi, vous pouvez copier header.phpet ajouter votre code, mais vous devrez toujours mettre à jour le reste du fichier s’il change. Une meilleure solution serait de créer le vôtre functions.phpdans votre nouveau thème enfant et d’utiliser ce qui suit :

add_action('wp_head', function(){
  ?>
  Enter tracking code here...
  <?php
});

Cela s’accrochera ensuite à l’action principale de WordPress et imprimera le code de suivi là où vous le souhaitez, sans que vous ayez à vous soucier du reste de l’en-tête.

Bien sûr, une fois que vous êtes prêt, allez dans Apparence -> Thèmes dans WordPress et vous y verrez votre nouveau thème. Activez-le et vérifiez votre site !

Pour plus d’informations et des conseils sur les thèmes enfants, vous pouvez consulter cette page sur le Codex WordPress.

Option 2 : Créer un plug-in

S’il ne s’agit que de fonctionnalités que vous souhaitez ajouter à votre site, vous trouverez peut-être un plugin plus utile – en particulier parce que vous pouvez changer de thème plus tard et conserver facilement votre plugin, et vous pouvez l’activer et le désactiver à volonté.

Vous pouvez créer autant de plugins que vous le souhaitez s’il y a plus de fonctionnalités que vous souhaitez ajouter plus tard.

Le processus est assez similaire à la création d’un thème ci-dessus. Au lieu de créer le nouveau dossier dans le wp-content/themesdossier, collez-le à la wp-content/pluginsplace. Ensuite, créez un .phpfichier dans ce dossier (par exemple myplugin.php, mais vous pouvez l’appeler comme vous le souhaitez), et ajoutez ce qui suit en haut du fichier :

<?php
/*
Plugin Name: My Toolset
*/

(Vous pouvez ajouter des informations supplémentaires si vous le souhaitez, plus d’informations sont disponibles sur cette page du manuel du plugin WordPress)

Sous cela, placez simplement exactement le même add_action()code mentionné dans l’option de thème ci-dessus.

Enregistrez votre fichier, accédez à Plugins dans votre administrateur WordPress, trouvez votre nouveau plugin dans la liste, cliquez sur Activer et vérifiez votre site !

Pour plus d’informations et des conseils sur les plugins, vous pouvez consulter cette page sur le Codex WordPress.

Solution n°2 trouvée

Vous devez utiliser le wp_headcrochet pour ajouter du contenu <head></head>dynamiquement.

Votre code ressemblerait à ceci :

add_action('wp_head', 'change_this_name');
function change_this_name(){
  ?>
  <script>
    CODE HERE
  <?php if (is_single()){CODE HERE}?>
    CODE HERE
  </script>
  <?php
};

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *