2011-09-11 17 views
32

Me aparece este error. y no tengo idea de lidiar con esto.No se puede modificar la información del encabezado: los encabezados ya enviados por ... Wordpress Problema

No se puede modificar la información de cabecera - cabeceras ya enviado por (la producción se inició a /home/ben213/public_html/wp-content/themes/Bendaggers/functions.php:9) en/home/ben213/public_html /wp-includes/pluggable.php en la línea 934

mi archivo functions.php línea # 9 es:

<?php if(function_exists('register_sidebar'))register_sidebar();?> 

mientras mi pluggable.php # 934 es

function wp_redirect($location, $status = 302) { 
    global $is_IIS; 

    $location = apply_filters('wp_redirect', $location, $status); 
    $status = apply_filters('wp_redirect_status', $status, $location); 

    if (!$location) // allows the wp_redirect filter to cancel a redirect 
     return false; 

    $location = wp_sanitize_redirect($location); 

    if (!$is_IIS && php_sapi_name() != 'cgi-fcgi') 
     status_header($status); // This causes problems on IIS and some FastCGI setups 

    header("Location: $location", true, $status);} 
endif; 

estoy teniendo un tiempo difícil calcular esto ya no soy un programador. lo que parece estar mal? amablemente ayúdeme por favor ...

+0

Hola Paul, ¡Buen día! Lo siento, pero ¿puedes traducir eso en inglés? Entonces, ¿cómo voy a hacer eso? –

+0

¿Qué es 'pluggable.php'? ¿Por qué lo tienes? Parece que debe incluirse antes de 'functions.php' mientras intenta establecer encabezados HTTP, y estos deben establecerse antes de comenzar a generar HTML. –

+0

No tengo idea aquí Paul, todo lo que sé es Es para widgetizar mi barra lateral. no tengo idea, lo siento. –

Respuesta

77

Su tema es impresión de salida (texto) al navegador, pero luego por alguna razón WordPress está redirigiendo al usuario (con wp_redirect) fuera de esa página antes de que se muestre toda la página. No puede comenzar a imprimir y luego redirigir, o obtendrá el error que ve. A eso estaba llegando Paul Grime en su comentario.

Ken White comentó con una referencia a una publicación con un problema similar. Lo arreglé en mi propia experiencia al almacenar en búfer el resultado del script.

En el expediente de su tema functions.php (que vaya a incluirse cada vez que las páginas de su tema cargan), ponga la siguiente:

//allow redirection, even if my theme starts to send output to the browser 
add_action('init', 'do_output_buffer'); 
function do_output_buffer() { 
     ob_start(); 
} 

Ahora, incluso si parte de su tema comienza a enviar al explorador, PHP ganó No envíe ese texto hasta que la página esté completamente cargada, lo que permite a WordPress redirigir a los usuarios, si es necesario, como parte de su propia lógica.

+1

Gracias. ¡Eso resolvió mi problema! – Phaedrus

+1

funciona a la perfección! – Julien

+1

@BenDaggers Marque esta respuesta como correcta o comente por qué no fue así. Gracias. – hitautodestruct

18

Si está intentando redirigir a otra página desde su página actual, donde ha imponer una condición o sin condición, utilice este código. E.gs tiene dos páginas A.php, & B.php y actualmente está en A.php donde quiere ir a otra página B.php al hacer clic en el BOTÓN.

if(isset($_POST['save_btn'])) 
    { 
     //write some of your code here, if necessary 
     echo'<script> window.location="B.php"; </script> '; 
    } 
Cuestiones relacionadas