在開發外掛的過程中,免不了在資料庫建立一些欄位乃至表,或者建立了一些定時任務,當外掛被刪除的時候這些東西就會被留在 WordPress 上,變成垃圾,作為負責的開發者,有必要在刪除外掛的時候幫助使用者刪除掉我們留下的痕跡。
uninstall.php 檔案
做到這點有兩種方法,一時在外掛的根目錄建立一個 uninstall.php 檔案,在你的外掛被刪除之前會呼叫執行這個檔案,但要注意就是防止有人惡意訪問這個檔案我們需要判斷一下 WP_UNINSTALL_PLUGIN 常量是否被定義,沒定義則結束程式:
|
<?php //防止有人惡意訪問此檔案,所以在沒有 WP_UNINSTALL_PLUGIN 常量的情況下結束程式 if(!defined('WP_UNINSTALL_PLUGIN'))exit(); //可以在要解除安裝的時候做一些事情,比如刪除一些欄位,登出定時任務 delete_option('薇曉朵_name'); delete_option('薇曉朵_name2'); |
解除安裝鉤子
第二種方法叫做解除安裝鉤子,在你的根目錄沒有 uninstall.php 檔案的時候 WordPress 會去執行解除安裝鉤子。
例子:
|
register_uninstall_hook(__FILE__,'Bing_uninstall_func'); functionBing_uninstall_func(){ //可以在要解除安裝的時候做一些事情,比如刪除一些欄位,登出定時任務 delete_option('薇曉朵_name'); delete_option('薇曉朵_name2'); } |
這些程式碼直接放到外掛的檔案裡即可,不過解除安裝鉤子不能使用類函式,否則會把 $this 儲存到資料庫裡,所以如果不是萬不得已請儘可能的使用 uninstall.php 檔案。