Warning: Cannot modify header information的解决办法 – 千丝海阁

首页 » Wordpress » Warning: Cannot modify header information的解决办法

Warning: Cannot modify header information的解决办法

2652 9

昨天将本站的wordpress升级到最新版本,今天早上,经过两位朋友的提醒,才发现用非chrome浏览器打开博客,头部会显示有错误,错误内容为:

Warning: Cannot modify header information – headers already sent by (output started at /home/tiandiyo/domains/tiandiyoyo.com/public_html/wp-content/themes/freshblog/header.php:5) in /home/tiandiyo/domains/tiandiyoyo.com/public_html/wp-content/themes/freshblog/header.php on line 106

于是查了下header.php的106行代码,是setcookie的一段代码,本意是来访者,如果没有显示模式(普通or宽屏)的cookie,即第一次来访,强制存储cookie为宽屏模式。不知道是不是由于升级到最新版本的wp的原因才报错的,不管三七二十一,注释掉语句,将相关逻辑写入到下面的条件中。

//显示模式切换
//if(!isset($_COOKIE['MODOFTIANDIYOYO']))
    //setcookie('MODOFTIANDIYOYO',1,time()+3600*24*60,"/");
if(isset($_COOKIE['MODOFTIANDIYOYO']) && $_COOKIE["MODOFTIANDIYOYO"] == 0) 
	echo "<div class='sw'><a href='' id='switches'>切换至宽屏</a></div>";
else 
	echo "<div class='sw'><a href='' id='switches'>切换至普通</a></div>";

顺便说一下本站实现宽屏自适应和普通模式的思路,利用cookie存储显示模式,根据不同的显示模式加载不同的样式style。在文件header.php插入以下代码:

<?php if($_COOKIE["MODOFTIANDIYOYO"] == 1 || !isset($_COOKIE['MODOFTIANDIYOYO'])) 
	$reallycss = get_bloginfo('stylesheet_directory') . "/style2.css";
else 
	$reallycss = get_bloginfo('stylesheet_directory') . "/style.css";
?>
<link rel="stylesheet" id = "csslink" type="text/css" href="<?php echo $reallycss; ?>" media="screen" />

并在适当的位置插入第一段显示模式切换的代码,最后在尾部插入js,来存储cookie以及更改切换的文字。

//浏览方式,0普通,1宽屏
document.getElementById("switches").onclick = function(){
	var name = document.getElementById("switches").innerHTML;
	var mycss = document.getElementById("csslink").href;
	if(name == "切换至宽屏") {
		mycss = mycss.replace("style.css","style2.css");
		document.getElementById("switches").innerHTML = "切换至普通";
		SetCookie("MODOFTIANDIYOYO",1);
	}
	else {
		mycss = mycss.replace("style.css2","style.css");
		document.getElementById("switches").innerHTML = "切换至宽屏";
		SetCookie("MODOFTIANDIYOYO",0);
	}
	location.reload();
}

后话,现在大多都自适应了,为什么tiandi还要加个切换回普通模式的功能呢?因为以前用freshblog的普通版式习惯了,一开始改宽屏模式感觉有些不习惯,不过现在2个月下来,好像也适应了宽屏了,这个切换功能反正也不影响什么,就留着吧。

文章评分1次,平均分5.0

本文原始地址:https://www.tiandiyoyo.com/2013/08/warning-cannot-modify-header-information/
本站所有文章,除了特别注明外,均为本站原创,转载请注明出处来自www.tiandiyoyo.com

您可能还会对以下文章感兴趣:

评论前先开启评论开关:


9 Comments

  1. 大发 :

    我宽屏那么久还是改回960了

  2. 到是没遇到过这个问题

  3. 发代码什么的,用宽屏最爽了。。

  4. 宽屏的感觉也挺好的,滚动条短了,呵呵。

  5. FROYO :

    遇到过几次这个问题,装插件出现了,卸载插件又好了。。。

载入分页评论...