刚刚把wordpress升级到了3.4.1版本,在升级前发现有一个插件更新以及两个主题更新,没有理会,先升级了wordpress的core。

升级完了之后打算回去升级那两个主题,却在update页面提示没有需要更新的主题了。

我还以为现在wordpress这么智能了?升级系统还顺便帮忙升级其他的?于是就去主题设置页面看了一眼,发现所有已安装的主题都不见了。

我倒是没有怎么用心diy过主题保留下来,所以没有什么蛋疼心碎的感觉,就是感觉很奇怪,为什么wordpress升级会把已有主题都删掉,还是说我升级过程中出了什么问题?

上网搜了一下发现只是我一个人遇到这个问题,而且已经有人找到了解决办法。

这个问题出现的原因就是wordpress在3.4版本后采用了scandir函数来检测保存主题信息的文件夹,而这个函数在一些版本(未考证是不是所有版本)的php设置文件中是默认被屏蔽掉的,那么给启用就好了。

首先找到php.ini,对其进行编辑。我用的是LNMP,php.ini的默认位置在/usr/local/php/etc/php.ini

打开文件,直接搜索scandir关键字,能找到一行开头是[ccei_php]disable_functions =[/ccei_php]的结果,从中把scandir删掉,然后重启相关服务即可(我直接把nginx和php-fpm全重启了,不清楚是否只重启一个就好)。