Philna2 本地wordpress首页空白,后台正常的解决办法
因为下午在看那个搜索中文乱码的问题,就顺便把线上的内容搬到本地来当测试环境了。可是却惊奇的发现我在本地无法打开wordpress,只有一个空白页。但是意外的是后台一切正常。
和网上其他的原因不同。因为我还没有装插件,也默认皮肤也没有问题。所以我怀疑是Philna2皮肤本身的问题。
现象调查:
用var_dump函数一点点的跟着程序走,发现在basic_template.php里面get_header();就出现了问题。在该语句前打印的东西可以出来,而在其后的代码是出不来的。看来问题就出在这个get_header()方法里。
曲折取证:
于是用全文搜索工具来查这个函数的定义位置,原来其是wordpress自带的。其定义位置是:wordpress\wp-includes\general-template.php
让我们来看一下函数定义:
do_action( 'get_header', $name );
$templates = array();
if ( isset($name) )
$templates[] = "header-{$name}.php";
$templates[] = "header.php";
if ('' == locate_template($templates, true))
load_template( get_theme_root() . '/default/header.php');
}
仔细观察,简单的分析了一平,也就是说其是取各个皮肤的header.php文件,如果那个文件不存在呢,则取默认皮肤的header.php。(貌似这是个意思,因为locate_template()方法我没有继续跟下去)~~
找到原因:
在philna2\header.php里第一句就是include_once BASIC_HEADER;所以我们要找根本原因,也就是说是wordpress\wp-content\themes\philna2\templates\basic_header.php出了问题。
找到原因就好办了,我们继续往下跟,这样才是治标,治本。
ob_start('ob_gzhandler');
}else{
ob_start();
}
这里面会去检查我有没有激活php的zlib扩展,可能刚巧我的扩展有问题吧,于是发生了问题,用httpwatch可以看到错误原因大概是压缩的方式未知。这就好办了。让我们仔细点看。
其在or语句前面一点点,有一个ob_get_length() == false 这里引起了我的注意,为啥这里判断是两个等号呢?在其前我var_dump(ob_get_length());返回的是int(0),这里0其实是不等于false的。但是用了==就出了问题。
解决办法:
把那个==换成===问题就可以解决了,虽然我后来又调了一下判断条件的先后顺序,呵呵。
}
文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/11/27/1654/
版权所有 © 转载时必须以链接形式注明作者和原始出处!
这个问题我也遇到过,不过后来覆盖了一下神奇地好了
[回复]
新版本的真不错
[回复]
这个主题弄的太复杂了,出问题就比较难搞,哈哈
[回复]
小小子要开始折腾这个主题了吗?
[回复]
@掌柜的马甲
没有。我像是那么勤劳的人吗?只是昨天调东西的时候偶尔发现这个小问题,顺手解决的。并不是在折腾。呵呵。
[回复]
呵呵,挺善于研究啊~
[回复]
@张楠
呵呵,就是瞎搞。谈不上啥研究。呵。
[回复]
没用过wordpress,我用的是z-blog~
[回复]
;-) 我也曾经遇到过这种情况,后来自己都不记得怎么弄好的了
[回复]
博主你好!我現在遇到了該問題,無論如何都無法解決,重新下載philna2主題也不行,後臺預覽該主題為空白,啟用后就全站空白,而使用其它主題則沒問題,懇請博主幫忙指點一下,謝謝!
[回复]
@solemn
按照我文中写的试一下呢。是不是你的后台不支持一些函数呢?因为看不到,所以我也只能靠猜。
[回复]
都不知道这款主题最新版是多少了,貌似wordpress官网的版本号比较快,但是google code的上传时间又比较新….
我糊涂了
[回复]
嗯 今天刚好就遇到这个问题
试试看可以不可以
[回复]