在開發插件的過程中,免不了在數據庫創建一些字段乃至表,或者創建了一些定時任務,當插件被刪除的時候這些東西就會被留在 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 文件。