web-dev-qa-db-fra.com

Erreur d'activation du plugin en raison d'une sortie inattendue

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>";.

2
Vijay Chavda

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.

4
fuxia