我有一个问题无法在wordpress上修改标题信息 警告:无法修改标头信息 - 已经发送的标头(/home/sixtydev/public_html/voxxydev/wp-content/themes/voxxy/header.php:15中的输出)/ home / sixtydev / public_html / voxxydev / wp-在865行包含/ pluggable.php
我的重定向代码是:
if(isset($_GET['qry']) && !empty($_GET['qry'])){
$swl = mysql_query("update wp_share_idea set image".$_GET['qry']."='' where userId='".$delId."'");
wp_redirect("http://60degreedeveloper.info/voxxydev/user-profile/?msg='".$delId."'");
exit;
}
我的header.php代码:
<?php
/**
* The Header for our theme.
*
* Displays all of the <head> section and everything up till <div id="main">
*
* @package WordPress
* @subpackage Voxxy
* @since Voxxy 1.0
*/
?><html>
<head>
<title>Voxxy</title>
<link rel="profile" href="http://gmpg.org/xfn/11"/>
line no: 15:: <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo('stylesheet_url');?>"/>
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>"/>
和plugable.php代码:
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
line no:865:- header("Location: $location", true, $status);
}
我很困惑,问题出在哪里。 提前致谢
答案 0 :(得分:2)
wp_redirect
只有在Wordpress中生成输出的第一件事才有效。它的工作原理是在输出中设置http标头。一旦其他东西产生了一些输出,该方法就不再有效了。
在您的情况下,无论您何时调用pluggable.php中的重定向代码,都会在调用get_header()
后发生。
您必须在调用标头之前移动此代码,或使用javascript函数重定向用户。
您也不应该在未经过类型化的$ _GET变量上对数据库运行update
查询。
答案 1 :(得分:0)
如果@cpilko解决方案不起作用(他可能完全正确),但是 -
关于PHP文件本身存在wordpress的已知问题。
您必须确保在开始<?php
标记之前没有空字符/空格/回车符,并且在结束标记?>
之后没有
您需要检查所有主题文件和所有插件。
关于结束标记?>
- 你需要确保它是EXISTS(是的,一些插件开发者省略了它)
在此处阅读更多内容:http://codex.wordpress.org/Answers-Troubleshooting#Headers_already_sent
在99%的案例中 - 这是罪魁祸首。
答案 2 :(得分:0)
如果您将bloginfo( 'stylesheet_uri' )
更改为print get_stylesheet_directory_uri()
,那会怎样?
bloginfo( 'pingback_url' )
to print get_bloginfo( 'pingback_url' )
; ?
答案 3 :(得分:0)
$status = apply_filters( 'wp_redirect_status', $status, $location );
if ( ! $location )
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);
return true;
}
endif;
答案 4 :(得分:-1)
尝试ob_start(); 在根文件wp_config.php的顶部