WordPress : Essayer d’afficher des publicités sur seulement un tiers des publications en boucle. Continuez à recevoir l’erreur 500 ?

Publié par Jean-Michel le

Je pense que c’est juste une erreur de code PHP, mais pour une raison quelconque, le code suivant ne fonctionnera pas, il continue de me donner l’erreur interne du serveur 500

<?php
  $ajfl_adLuck = rand(1,3);
  if ($ajfl_adLuck == 2) {
    echo "<div id="sidebar-awesome-container">";
    echo "<div id="sidebar-awesome-wrapper">";
    echo "<img src="" . bloginfo('template_url'); . "/img/sample-ad-side.png" alt="Sample Advertisement">";
    echo "</div>";
    echo "</div>";
  } else {
    echo "";
  }
?>

Fondamentalement, mon site est légèrement différent en ce que la barre latérale se trouve à l’intérieur de la boucle WordPress, car plutôt qu’une liste de catégories et de métadonnées, elle affiche les informations de la publication. Je veux qu’une annonce s’affiche dans la barre latérale, mais pas sur chaque message, seulement sur, disons, un tiers d’entre eux.

Je me demandais pourquoi mon code actuel ne fonctionnerait pas. Tout à fait nouveau en PHP, je suppose donc que c’est une erreur de syntaxe, mais j’ai travaillé dessus pendant plus d’une heure et je n’arrive toujours pas à trouver le correctif.

Toute aide est appréciée, qu’il s’agisse d’un correctif ou d’une meilleure façon de le faire.
Merci.

Solution n°1 trouvée

voir la réponse de @Sunyatasattva ;

aussi, dans la concaténation de chaînes, vous devez utiliserget_bloginfo()

Solution n°2 trouvée

Pas vraiment une question WordPress, mais je pense que voici l’erreur de syntaxe

  echo "<img src="" . bloginfo('template_url'); . "/img/sample-ad-side.png" alt="Sample Advertisement">";

à

 echo "<img src="" . bloginfo('template_url') . "/img/sample-ad-side.png" alt="Sample Advertisement">";

Pas de point-virgule si vous concaténez une chaîne. Si je peux oser, il est recommandé d’enregistrer votre chaîne dans une variable, puis echola variable elle-même ; pour une meilleure lisibilité, utilisez la concaténation dans votre variable en utilisant .=.

Solution n°3 trouvée

echo "<img src="" . bloginfo('template_url'); . "/img/sample-ad-side.png" alt="Sample Advertisement">";

Vous avez ajouté un point-virgule, ce qui vient après ce point-virgule est une nouvelle instruction. . "img/etc n’est pas un PHP valide, il génère donc une erreur.

De plus, bloginfo ne renvoie pas sa valeur, il l’imprime, vous devez donc changer cela en get_bloginfo.

Je vous suggère de rechercher la gestion des erreurs PHP de base afin de pouvoir consulter les journaux d’erreurs. Je vous recommande également de vous procurer un éditeur de code approprié qui mettra en évidence les erreurs de syntaxe en rouge vif. Sublimetext/Komodo/PHPStorm/Netbeans/etc feront tous cela. Les erreurs de syntaxe sont un problème résolu, vous ne devriez pas avoir à les chercher, elles devraient vous être signalées par votre éditeur de code

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 *