Blog Tool Box

WordPress : ne pas afficher un encart publicitaire sur les X derniers articles publiés

Si vous souhaitez ne pas afficher un encart de pub (ou toute autre chose) sur les X derniers articles publiés ou, à l’inverse, afficher un message seulement sur les X derniers articles et le tout sans tenir compte de la date de publication, j’ai codé une petite fonction WordPress.

Concrètement, sur ce blog, cette fonction permet de ne pas afficher une publicité Google AdSense sur le dernier article publié. Les fonctions équivalentes qui permettent de ne pas afficher de pub sur les articles datés de moins de X jours ne me convenaient pas étant donné le rythme de publication assez faible !

La fonction à ajouter au fichier functions.php de votre thème WordPress :

// Limité par défaut au dernier article publié
function is_last_post($number_posts = 1){

  // On récupère la liste des X (par défaut = 1) derniers articles publiés
  $last_posts = wp_get_recent_posts(array('numberposts' => $number_posts));

  // On stocke les ID des X derniers articles
  $last_posts_id = Array();
  foreach($last_posts as $post){ $last_posts_id[] = $post["ID"]; }
  
  // On stocke l'ID de l'article courant
  $current_post_id = get_the_ID();
  
  // On vérifie si l'article courant est parmi les X derniers articles publiés
  if(in_array($current_post_id, $last_posts_id)){ return true; }
  else{ return false; }
}

L’appel à cette fonction dans le fichier single.php de votre thème. Ici, il est possible de passer en paramètre un chiffre (X) pour ne pas afficher de pub sur les X derniers articles.

<?php if(!is_last_post(1)){ ?>
// Script de pub, message, etc
<?php } ?>

Dans l’exemple ci-dessus, la pub s’affichera sur tous les articles sauf le dernier publié !