Bien le bonjour ^^

Ceci est mon premier post donc je vous demanderai un peu d’indulgence 😛

Alors, de quoi va-t-on parler plus précisément ? Et bien, si vous souhaitez ajouter de façon automatique et simple des publicités autour de vos billets (en dessous du titre + en dessous du post), alors c’est ici que vous trouverez la réponse !

Passons directement dans le vif du sujet ! 🙂

Où faire les modifications ?

Il y a plusieurs solutions, personnellement je préfère faire une modification par thème car ce n’est pas bien compliqué mais surtout car la largeur de votre pub dépend forcément de votre thème.

Pour chaque thème, vous devriez trouver un fichier functions.php (wp-content/themes/<nom du theme>/functions.php). Si par hasard, il ne s’y trouvait pas vous pouvez également utiliser le fichier header.php situé dans le même répertoire.

Comment faire ?

Ouvrez le fichier functions.php et ajoutez-y les quelques lignes suivantes :

add_filter('the_content', 'my_custom_content');

function my_custom_content($content) {
   if (is_single()) {
      $content = '<!--CODE PUBLICITE TOP POST-->' . $content;
      $content .= '<!--CODE PUBLICITE BOTTOM POST-->';
   }
   return $content;
}

Vous l’aurez deviné : il vous faut remplacer les commentaires HTML (<!–XXX–>) par les codes publicitaires de votre sponsor 😉

Comment ça marche ?

La fonction WordPress the_content() permet de récupérer le contenu… mais pas seulement ! Tout un tas de filtres sont également exécutés avant de retourner le contenu. Des filtres pour retirer certains tags HTML, pour mettre en forme le texte, des filtres de plugin que vous auriez ajouter, etc.

Tout ce que nous faisons ici, c’est ajouter un filtre supplémentaire grâce à add_filter(), ce filtre a pour nom de fonction my_custom_content(). Pour ceux qui seraient familiers avec ces fonctions, on remarquera qu’on a pas besoin d’utiliser la fonction apply_filter() car elle est déjà appelée dans the_content().

Je ne vois pas mes pubs sur ma homepage !

C’est tout à fait normal, le code ci-dessus n’affiche les publicités qu’en mode “single” (is_single()), c’est à dire, lorsque vous lisez un article.

Voici quelques versions différentes du code :

Affichage sur toutes les pages (même la homepage)

add_filter('the_content', 'my_custom_content');

function my_custom_content($content) {
   $content = '<!--CODE PUBLICITE TOP POST-->' . $content;
   $content .= '<!--CODE PUBLICITE BOTTOM POST-->';
   return $content;
}

Afficher uniquement la publicité du haut

add_filter('the_content', 'my_custom_content');

function my_custom_content($content) {
   if (is_single()) {
      $content = '<!--CODE PUBLICITE TOP POST-->' . $content;
   }
   return $content;
}

Afficher uniquement la publicité du bas

add_filter('the_content', 'my_custom_content');

function my_custom_content($content) {
   if (is_single()) {
      $content .= '<!--CODE PUBLICITE BOTTOM POST-->';
   }
   return $content;
}

Afficher uniquement la publicité du bas sur toutes les pages

add_filter('the_content', 'my_custom_content');

function my_custom_content($content) {
   return $content . '<!--CODE PUBLICITE BOTTOM POST-->';
}