如何修復【WordPress】Keyword Link Plugin外掛錯誤

20210808-1

最近我安裝的Keyword Link Plugin這個外掛出現了下面的錯誤:

Fatal error: Uncaught Error: Undefined constant “BM_KEYWORDLINK_OPTION” in /home/job/wordpress/wp-content/plugins/blog-mechanics-keyword-link-plugin-v01/bm_keywordlink.php:21 Stack trace: #0 /home/job/wordpress/wp-admin/includes/plugin.php(2286): include_once() #1 /home/job/wordpress/wp-admin/plugins.php(191): plugin_sandbox_scrape() #2 {main} thrown in /home/job/wordpress/wp-content/plugins/blog-mechanics-keyword-link-plugin-v01/bm_keywordlink.php on line 21

我想是因為我把PHP升級到PHP 8以上的的關係,很多的語法都改了,恰巧我這陣子工作玩C#很多時間,所以就有點搞不清狀況了,Google一些人的類似經驗,發現PHP的define定義定數的語法改了。

所以只要將

bm_keywordlink.php的21行及22行這兩行程式修改一下加個雙引號就可以繼續使用了,不錯吧!

define(BM_KEYWORDLINK_OPTION,’bm_keywordlinkoption’);
define(BM_KEYWORDLINK_QUOTES,’1′);

改成

define(“BM_KEYWORDLINK_OPTION”,’bm_keywordlinkoption’);
define(“BM_KEYWORDLINK_QUOTES”,’1′);

測試後改成502的錯誤,我再檢查看看

502 Bad Gateway

檢查error.log有PHP Warning: Undefined array key “action” in …/blog-mechanics-keyword-link-plugin/bm_csvsupport.php on line 138的錯誤

這一行原來長這樣,以前可能php.ini設定沒那麼嚴格,現在PHP8的嚴格多了

if ($_POST[‘action’]==’exportcvs’)

所以我們增加isset來檢查$_POST[‘action’]是否有值,有值就做if判斷裡面的事,沒有就直接跳過。

if (isset($_POST[‘action’]) && $_POST[‘action’]==’exportcvs’)

更換後502錯誤就沒了,我們繼續追蹤看看~

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *