Estoy desarrollando complementos de WordPress. Cuando activo mi complemento, recibo el siguiente mensaje:
El complemento generó 293 caracteres de salida inesperada durante la activación. Si observa mensajes de "encabezados ya enviados", problemas con los canales de distribución u otros problemas, intente desactivar o eliminar este complemento.
El complemento funciona muy bien, pero no sé por qué recibo este mensaje. Mi complemento es: http://wordpress.org/extend/plugins/facebook-send-like-button/
activate_plugin method
enwordpress/wp-admin/includes/plugin.php
. El contenido de la variable $ output le mostrará los datos cargados en la excepción que se arrojan invariablemente y luego se ofuscan con wordpress.Respuestas:
Supongo que obtienes un error de PHP, que genera resultados antes de que se envíen los encabezados. Si ha
E_NOTICE
habilitado, la llamada$_POST['foo']
puede generar un error de "Aviso: variable indefinida" si esa variable no está configurada.Mejor práctica: nunca asuma nada sobre las variables GET, POST, COOKIE y REQUEST. Siempre verifique primero usando
isset()
oempty()
.fuente
Esto generalmente es causado por espacios o nuevas líneas antes de la
<?php
etiqueta de apertura o después de la?>
etiqueta de cierre .Consulte esta página para ver algunas soluciones: ¿Cómo resuelvo el problema de advertencia de encabezados ya enviados?
ACTUALIZAR
Después de examinar su código de complemento, lo único que noté es que no tiene una etiqueta PHP de cierre. En la última línea, agregue
?>
fuente
?>
etiqueta de cierre . De hecho, una forma de garantizar que no causaráHeaders already sent
problemas es dejar fuera la etiqueta de cierre.?>
.Al comienzo de su función de activación, coloque
ob_start();
ay al final, coloque untrigger_error(ob_get_contents(),E_USER_ERROR);
Luego, intente activar su complemento, y podrá ver cuáles son realmente los ' 293 caracteres de salida inesperada '. A partir de ese momento, la depuración será más fácil (eliminar caracteres de línea nuevos o resolver algunos errores).
fuente
Me he enfrentado al mismo problema antes, para mí era un espacio en blanco adicional. Después de eliminar todos esos espacios en blanco, el complemento podría activarse sin ningún error / advertencia.
fuente
No estoy seguro de que este sea el problema, pero estoy bastante seguro de ello.
Debe usar una devolución de llamada válida como segundo argumento en
register_activation_hook()
:Por lo que puedo decir, no has definido nada
twl_tablo_olustur()
. Esto ciertamente explicaría la salida inesperada (error PHP generado al intentar llamar a una función inexistente), y explicaría por qué funciona bien en todas las demás circunstancias.fuente
register_activation_hook(__FILE__,'twl_tablo_olustur');
este código de la versión anterior. En la nueva versión (puede verificar, v1.3) está actualizada, pero sigue siendo el mismo error.Tiendo a recibir muchos de estos mensajes cuando estoy enviando mensajes de depuración de plugins / temas, especialmente cuando estoy enviando cosas antes de que se llame a wp_header.
Si está generando caracteres, creo (podría estar equivocado aquí) que hay una declaración de encabezado implícita, por lo que cuando se produce la llamada normal de encabezado (), obtiene el error ya que no puede tener 2 declaraciones de encabezado.
Puede usar ob_start () para almacenar el resultado en el búfer, lo que debería eliminar el error. Eche un vistazo a los comentarios aquí: http://php.net/manual/en/function.header.php
fuente
Sé que esta es una vieja pregunta y tiene una respuesta aceptada. Hay muchas respuestas que cubren cuál podría ser el problema de activación . Sin embargo, ninguna de las respuestas realmente llega al tema central de CÓMO depurar problemas con la activación del complemento.
Si va a desarrollar complementos de WP, también puede usar las herramientas correctas para el trabajo. Una de ellas es la barra de depuración . Este es un complemento que te ayuda a depurar problemas en WP. Si usted es un desarrollador de complementos, debe estar en su caja de herramientas.
La barra de depuración tiene una serie de complementos: complementos para el complemento, si lo desea. Uno de ellos es la activación del complemento de la barra de depuración , que le mostrará el error PHP generado cuando se activa el complemento. Una vez que sepa cuál es el error de PHP que hace que se envíen los encabezados, entonces sabrá dónde debe buscar para corregirlo. Confía en mí, sabiendo lo que el error es que se puede ahorrar un montón de tiempo en lugar de tratar de averiguar lo que el error podría ser .
fuente
Mirando la última revisión del complemento (381724) el problema es Demasiados espacios
cada vez que quieras crear esta estructura:
en su código use TAB y no espacios.
Aquí está su código donde reemplacé todos los espacios con pestañas y no recibo ningún mensaje en la activación:
fuente
function blabla(){?> <input> <?php code... ?> output something <?php code.. }
entonces ese no es el caso.?>
, obtendráheader already send error
esos espacios en blanco adicionales que se imprimirán cuando el motor php lo analice.Elimina la etiqueta de cierre php (?>) Del final de cada archivo. y también elimine todo el espacio en blanco después de la etiqueta de cierre de php (?>)
cuando active el complemento, simplemente verifique si la tabla ya existe o no.
eliminé el problema por el código
fuente
Mi problema fue que el archivo se guardó como un archivo UTF-8. Guardarlo con la página de códigos 1252 resolvió el error.
fuente