我正在開發Wordpress中的第一個插件。然後其中一個功能需要發送電子郵件。我的插件使用wp_mail函數時發生錯誤()
但是當我調用該函數wp_mail()拋出我這個錯誤:
致命錯誤:調用未定義功能wp_mail()
我應該如何定義我的插件這個功能呢? ?
謝謝!
我正在開發Wordpress中的第一個插件。然後其中一個功能需要發送電子郵件。我的插件使用wp_mail函數時發生錯誤()
但是當我調用該函數wp_mail()拋出我這個錯誤:
致命錯誤:調用未定義功能wp_mail()
我應該如何定義我的插件這個功能呢? ?
謝謝!
您可能在加載WordPress環境之前嘗試做一些事情。
所有的操作都應該附加到某個掛鉤上,例如前端操作的「init」,後端的「admin-init」或者「wp-ajax - {$ your-action-here }「爲阿賈克斯。
檢查食品文檔:http://codex.wordpress.org/Plugin_API#Hooks.2C_Actions_and_Filters
的wp_mail()
功能不可用,直到動作plugins_loaded
後,如果您嘗試在該點之前使用它,因爲該功能是在這一點上不確定它會拋出一個錯誤。
因此,您不應該簡單地調用wp_mail()
,而應該將該進程掛鉤到某個操作,以便在該函數加載完成後執行該操作。
很多插件使用init
作爲動作掛鉤來連接他們的動作。 init
之後plugins_loaded
,所以如果你使用它,它應該工作。
wp_mail()不是插件,它是可插入的函數!位於「wp-includes \ pluggable.php」,它不會工作,直到wp_config.php它將被加載! – K3rnel31
雖然這是一個正確的說法,但在插件中調用wp_config.php並不是確保wp_mail可用的正確方法。正確的方法是確保您使用wp_mail的任何進程在plugins_loaded操作之後發生,此時wp_mail將由另一個插件加載,或者由pluggable.php加載。 – butlerblog
只需包含wp-load.php並繼續!
require('../../../wp-load.php');
或
require('wp-load.php');
根據您的腳本如何加載。
另請參見:http://www.nathanrice.net/blog/an-introduction-to-wordpress-action-hooks/ – felipelavinz