wordpress更换主题报错解决方法

技术 秋水逸冰 5994 次围观 3 次吐槽

  这两天在折腾主题,有时候觉得这个好看有时候觉得那个好看,于是就换来换去的。这不就换出问题了。
  在一次换回原主题的过程中,浏览器界面卡住不动,再一刷新就出现了http500内部服务器错误。第一感觉就是当前切换的主题出问题了,进而导致整个网站前台和后台都进不去了。
  解决方法有2种,推荐第1种,比较简单:
  1、通过FTP软件(虚拟主机一般就只有FTP)进入网站的主题目录wp-content/themes,把切换的那个有问题的主题文件夹改名即可重新进入WordPress后台。进入后台会遇到提示,主题目录被破坏恢复到默认主题。
  2、通过修改数据库解决。登录phpMyadmin,找到安装wordpress的数据库,执行下面的SQL语句(wp_options中的wp是数据库前缀,改为当初安装时设定的;twentytwelve是举例的主题名称,改为切换时出问题的主题名称):

SELECT * FROM `wp_options` WHERE `option_value` = 'twentytwelve' LIMIT 0 , 30;

  一般出现3行结果,option_name分别是template、stylesheet、current_theme,修改为没出问题的主题名称即可。

  这时候网站已经恢复到默认主题(即一开始安装完wordpress后系统自带的三款主题之一),我开始找主题的原因。
  打开Apache的error_log文件,找到如下的错误信息:

[Sat Mar 16 21:26:27.637761 2013] [:error] [pid 1100] [client 180.108.184.166:56042] PHP Fatal error: Cannot redeclare remove_more_jump_link() (previously declared in /data/www/default/wp-content/themes/zbench/functions.php:43) in /data/www/default/wp-content/themes/zbench/functions.php on line 486, referer: https://teddysun.com/wp-admin/themes.php

  出现PHP致命错误是因为一个函数remove_more_jump_link的重申明出现错误。原来,是我当初在主题的functions.php里加了一些自定义的代码来优化显示效果,比如去除wordpress的链接含有more-link,自定义后台登录界面等。我在默认主题twentytwelve中添加了这几个函数后,再切换到别的主题,wordpress会自动将这些自定义的函数添加到新主题的functions.php中。然后我又重新将这几个函数添加到新主题中,进而导致函数名重复,出现PHP致命错误。
  原因找到了就容易解决了。将自己添加的那些函数全部删除后,切换主题恢复正常。
  出现这次故障的问题虽然解决了,但还是有不少地方需要在将来注意的。
  1、主题一般是不能随意切换的,固定使用一款主题后,最好是在这款主题的基础上修修改改或者安装插件,因为插件不可能兼容于所有主题;
  2、写文章时,一定要统一风格,最好不要过多使用一些自定义的html标签;
  3、如果之前使用的主题自带SEO功能,那么更换主题后的主题最好也要有SEO功能,否则需要用插件来实现;
  4、更换主题之前,需要确认当前的全部插件是否与更换的主题兼容,有一些主题附带的功能会与某些插件存在冲突,更换前需要好好检查;
  5、重新加入统计跟踪代码。常见的统计跟踪工具(如Google Analytics、cnzz等)代码一般添加到footer.php中,切换主题时也要注意添加到新主题中。(建议最好用插件实现添加统计代码,如Google Analytics)

转载请注明:秋水逸冰 » wordpress更换主题报错解决方法

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (3)

  1. 请问一个关于cnzz代码的问题,我的主题是全屏幕的 然后我在主题的 footer代码添加栏里 直接添加了cnzz代码 然后我cnzz的 流量统计 这4个字就出现在了博客页面的中间,于是我就想把它删了 然后到wp的主题设置里 把它去了 然后去了也没用 还是显示着,另,我用了七牛储存。帮帮我吧。。。。T T
    Q5年前 (2015-02-04)回复
    • 这种情况无法帮到你,每个主题都是不一样的。
      秋水逸冰5年前 (2015-02-04)回复
  2. 我在本地遇到同样问题,感谢博主的慷慨分享。让问题解决起来更容易。
    李君南6年前 (2013-06-28)回复