Tous les nouveaux plug-ins générant 311 caractères de sortie inattendue?
-
16-10-2019 - |
Question
À un certain moment, j'ai commencé à faire passer un message à propos de 311 caractères de sortie inattendue à chaque activation plug-in. Le nombre est toujours le même, et il arrive pour chaque activation de plug-in, y compris réactivant plugins qui ont été temporairement désactivés.
Le message exact:
Le greffon a généré 311 caractères de sortie inattendue lors de l'activation. Si vous remarquez des messages « envoyés déjà en-têtes », des problèmes avec les flux de syndication ou d'autres problèmes, essayez de désactiver ou de supprimer ce plug-in.
Est-ce susceptible d'être un problème avec un plug-in qui a des espaces supplémentaires dans ses fichiers ou quelque chose? Je ne l'ai pas encore eu de problèmes avec les en-têtes ayant déjà été envoyés. Peut-être qu'il est lié à les 404 étranges erreurs que je reçois dans wp -admin , mais ce problème existait bien avant que cette question de sortie inattendue.
La solution
Fondamentalement, il va comme ceci (étapes pertinentes uniquement):
- page
plugins.php
appelle la fonctionactivate_plugin()
. - Fonction commence en mémoire tampon de sortie.
- Inclut le fichier plug-in.
- Les feux action
activate_plugin
. - Les feux action
'activate_' . trim( $plugin )
. - Les feux action
activated_plugin
. - Si le tampon n'est pas vide, il crée l'objet
WP_Error
et le renvoie. - vérifie page
plugins.php
pour erreur et affiche un message d'erreur.
sortie se situe entre les étapes 2 et 7. S'il est pour plusieurs plugins puis les étapes 3 et 5 sont sûrs d'exclure, ils sont plugin-spécifiques.
Il est donc probablement quelque chose dans les deux activate_plugin
ou activated_plugin
. Aussi la sortie réelle indésirable est passé dans WP_Error
object mais non utilisé (seulement sa longueur).
Je vais essayer de vider d'abord les crochets, prendra peu de code supplémentaire dans le noyau un peu pour arriver à cette sortie dans l'objet WP_Error
.