1

我很好奇如果系統不符合特定要求,阻止用戶激活我的插件的正確方法。做檢查很容易,我不需要任何幫助,我更好奇如何讓WordPress退出並顯示錯誤消息。正確的方法來檢查WordPress插件的系統需求

目前我已經在激活掛鉤方法中試過exit($error_message)die($error_message)。顯示我的消息並且未激活插件時,還會顯示一條說明致命錯誤的消息(請參閱下圖)。

enter image description here

有誰知道一個更好的方式,將在適當的錯誤框顯示我的消息,而不顯示致命錯誤,它只是看起來很糟糕了新用戶一看就知道。

感謝您提前提供任何幫助。

回答

1

這是有點無證的,你可能已經注意到了。取而代之的die(),像這樣做:

$plugin = dirname(__FILE__) . '/functions.php'; 
deactivate_plugins($plugin); 
wp_die('<p>The <strong>X</strong> plugin requires version WordPress 2.8 or greater.</p>','Plugin Activation Error',array('response'=>200,'back_link'=>TRUE)); 

以上wp_die的線條()是停用此插件。請注意,在這種情況下我們使用functions.php,因爲那是我的插件名稱元數據註釋聲明 - 如果您使用不同的文件,則更改上面的代碼。請注意,該路徑對於比賽非常具體。所以,如果你想看看你的路徑通常會是什麼,請使用print_r(get_option('active_plugins'));die();轉儲出來,以便知道你需要什麼路徑。由於我有一個plugin_code.php,其中的插件代碼是其餘的,並且因爲它與functions.php位於同一目錄中,所以我只需要爲dirname(__FILE__)做適當的路徑。

請注意,wp_die()語句的結尾很重要,因爲它提供了一個反向鏈接並防止出現錯誤500(這是wp_die()的默認Apache代碼)。

+0

剛剛回來了堆棧溢出,所以很抱歉對你的回答遲到的迴應。本週晚些時候我會檢查出來,並在確認後將其標記爲答案。再次感謝您抽出時間 – macguru2000 2012-10-17 00:03:42

0

但這只是一個想法。嘗試檢查wordpress版本並比較,然後使用php通過自定義異常/錯誤。 PHP 5.0嘗試catch可以是一個很好的方法。這裏有一些資源。

http://www.w3schools.com/php/php_exception.asp

http://php.net/manual/en/internals2.opcodes.throw.php

您可以嘗試第一個鏈接。這是非常基本的。謝謝!希望信息會有所幫助。

+0

良好的通話,我將不得不調查。你知道WordPress是否有內置的激活異常處理程序或類似的東西可能會捕獲異常? – macguru2000 2011-03-28 18:45:31

+0

我不確定wordpress是否有這種類型的處理程序。但是,由於在php wordpress中很容易,它很可能不會有。 – Sisir 2011-03-28 18:51:09

相關問題