Je reçois le message d'erreur suivant lorsque j'active mon plugin:
Le plugin a généré 22 caractères de sortie inattendue lors de l'activation. Si vous remarquez des messages "en-têtes déjà envoyés", des problèmes avec les flux de syndication ou d'autres problèmes, essayez de désactiver ou de supprimer ce plug-in.
Et voici mon code de plugin:
<?php
/*
Plugin Name: Hello World
*/
echo "<h1>Hello, world!</h1>";
?>
Je sais que nous obtenons généralement cette erreur lorsqu'il y a une erreur de syntaxe dans le code. J'ai vérifié, il n'y a pas d'espaces vides, \n
, \t
, \r
ou tout type de caractères spéciaux au début ou à la fin du fichier.
Je ne comprends pas, c'est le plugin le plus minimaliste que l'on puisse créer, qu'est-ce qui ne va pas?
EDIT 1:
Je ne reçois pas l'erreur si je supprime la ligne echo "<h1>Hello, world!</h1>";
.
Les plugins sont chargés avant que les en-têtes ne soient envoyés. La raison en est que vous devriez pouvoir envoyer vos propres en-têtes par plugin.
Et c’est pourquoi un fichier de plugin principal ne doit pas créer de sortie directe. Enveloppez votre code echo
dans une fonction et enregistrez-la en tant que rappel pour une action ultérieure, après l'envoi des en-têtes.