2010年7月18日

syntax error, unexpected $end in 出現錯誤無法登入WordPress的簡單解決法

今天一打開電腦就收到有個WordPress站無法登入的電子信件通知,難道被駭了嗎?
一想到已有一陣子少看WordPress相關程式碼,已經覺得陌生,就有點恍惚,因為找出程式問題出在哪,怎麼解決,有時會花上很多很多時間,而且過程絕對不好玩。
還好今天這個無法登入WordPress控制台的問題不大,沒用去太多時間就解決了。
發生的原因,應該是前幾日做了更新update,但是不知何故就是出現問題了,也因為在更新時,不管是外掛plugin或theme主題或version版本的更新,都有可能會出現問題,是以在更新前總會提醒站長要先備份再更新,以保萬一。
但是我那次又偷懶沒先做備份,WordPress的更新頻率是很頻繁的,每次備份的結果導致檔案很多很亂,因此小更新就不太備份,備份多了久久看到檔案,也是有點恍惚”這是啥”。
因為這個問題對只是利用WordPress這個好用的CMS,而不想去碰程式碼的人,可能會很頭痛,就把這個方法寫出來。

問題狀況:想要登入WordPress,帳號和密碼都正確,卻出現如下錯誤無法登入:
Parse error: syntax error, unexpected $end in ......your domain name/wp-admin/includes/taxonomy.php  in line 147
解釋:在......your domain name/wp-admin/includes/taxonomy.php中的第147行,出現php錯誤,可能是缺了或多了 ?> 或其他符號。雖然,簡單做表面解釋就只是個?>等符號問題,但實際可能後面還有一長串的程式碼都有問題,只是電腦只會跟我們說至少也要有個?>做結束。

簡單解決方法:
  1. 打開你的......your domain name/wp-admin/includes/taxonomy.php 檔案,找到147行,程式編碼器都會顯示行數,要找很快,第147行只有看到$cat_ID = ,以下都是空白。(圖就是用Notepad++打開的,Notepad++是不錯的免費程式編輯軟體,又有中文版,功能也許不強大,但對簡單的編碼而言,比起功能強大卻相對笨重的編輯器,反而好用)
  2. 然後,再去下載一個WordPress檔,找出wp-admin/includes/taxonomy.php,不想下載,也可以去WordPress官網找。
  3. 比較二者之後,發現第147行$cat_ID =的後頭少了一大串程式碼。
  4. 把缺漏的程式碼,copy到原來的程式中,大功告成。


若是其他WordPress檔案template,plugin等,或對於使用像WordPress這種開放軟體,如Joomla,這方法也同理可用。
注意:在更改之前,先做好備份。

1 則留言:

Hsiupi Ou 提到...

請問我遇到了以下錯誤該如何解決?
1465行對照後似乎沒有甚麼問題~~
現在一頭霧水! 懇請解救

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 30720 bytes) in /home/a1927077/public_html/wp-admin/includes/plugin.php on line 1465