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