在更換wordPress改使用php7後,在前端及後端編輯器時又發生問題啦,又要debug 了,查了一下出現了「 Fatal error: Uncaught Error: Call to undefined function split() 」錯誤
查了一下,原來是php7 已停用 split(),所以就報錯啦,而這問題出錯在我安裝的sociable外掛上,最新版都無法排除看來這套件也很久沒再更新了,先排除此問題之後再來看看是否要更換此外掛
找了一下資料,目前可以使用 preg_split() 或 explode() 來替代split()
if (count(explode("Counter",$sitename))>1){
//if (count(split("Counter",$sitename))>1){
$link.= $href;
}else{
$link .= '<a title="'.$sitename.'" class="'.$sociable_options['icon_option'].'_'.$sociable_options['icon_size'].'" style="'.$style.'" rel="nofollow" ' . $target . ' href="' . $href . '">' . "" . '</a></li>' ;
}
照著上面這樣改,就可以啦。
參考資料:
How to fix the error with split() in php?
雖然可以自動更新wordPress至最新版,從前端查看blog時看起來都正常
不過一到後端在要編輯新文章時,就出現白色視窗 什麼都沒有出現
通常這時候可以按下F12 進行查看,或是直接開wordPress的Debug Mode(前篇有介紹),就可以追查啦,如下圖
看來真是慘呀,一些看起來可以正常的功能,其實也是慘到不行
這些問題,多半就是外掛造成的,所以在更新前,官方建議先關掉所有的外掛,呵 我就是沒走正路,所以如想要知道是不是這樣的問題,最快的方式就是直接將外掛所有都停用,變成很乾淨的wordPress,此時應該這些錯誤就不會出現啦,除非你的佈景主題使用的太特別 不然應該都是可解的。
如果可解,就要來看看是哪個外掛造成的,這時多半先要確認所有外掛都是最新版,因為你wordPress都升級了,外掛有些為了要配合也會要升級的,如升級外掛後問題都還是在,那就要一個一個來拆除看看,像我就是使用了Picasa的套件造成這問題,Picasa都陣亡那麼久了,我套件還一直掛著 ~看來真的太久沒有用了
這次除了升級wordPress,也一併從php5版 升級php7,所以同時間做這麼多調整,就等於拿石頭砸自己的腳 哈 哈
好吧都砸腳了,當然還是要搞好才行,在升上去php7後,原本可以用的wordPress ,忽然在一些功能上變成不能執行了,只好再追查下去
首先,將debug mode打開一看,才能找到問題點(如下圖),看來是套件衝突到了
查了一下,php 7.0以上版本,不允許 break 在 for 或 foreach 、switch 之外的地方出現,所以報出錯誤,排除的方式很簡單
就是去找到該路徑的程式,都有行數了,找了一下該行數,多半這錯誤的行數,是可以直接註解掉 無意義的程式,就大膽的註解掉吧
再重新運行後就可以正常了。
升級WordPress遇到麻煩了,執行後空白一片的網頁 要如何排除問題呢
首先只要找到你的設定檔 wp-config.php,啟動debug mode即可,把false 改成 true就可以啦
改完後一執行,就會看到一堆提醒及警訊出來,通常問題是在最下方 找一下Fatal error 就可以看到啦
記得,查完後要關起來呀,不然前端一樣會看到一堆醜醜的訊息
好久沒有更新WordPress,原本的版本是4.9.6,這次要直升5.6.1 看來會遇到很多問題
首先,選擇自動下載更新套件時,就出現以下錯誤
Fatal error: Maximum execution time of 30 seconds exceeded ,套件下載完,還要解壓縮並更新,30秒不夠用啦
所以,要調整設定才行,有三種方式可以達到,依最建議的方式介紹:
1.更新PHP的參數檔,編輯 php.ini 調整以下參數,沒有就加上去,調到180秒就夠用了
max_execution_time = 180
這樣就可以啦
2.如果你無法去改php.ini,那就從.htaccess 下手,在你的網站實體路徑裡有這個檔案,在其中加上以下參數,就立即生效
php_value max_execution_time 180
3.如果你前兩點沒有辦法設定,就從程式下手吧,在下載套件出錯的程式(看上圖),修改該程式,加上以下程式即可
ini_set('max_execution_time', 180);
這樣就可以啦
如果想看你目前系統的設定值為何,可以寫一隻phpinfo() 程式去查看,不過看完記得刪除該程式,以免相關設定被看光光增加資安風險
近期留言