插件卸載
在開發插件的過程中,免不了在數據庫創建一些字段乃至表,或者創建了一些定時任務,當插件被刪除的時候這些東西就會被留在 WordPress 上,變成垃圾,作為負責的開發者,有必要在刪除插件的時候幫助用戶刪除掉我們留下的痕跡。
uninstall.php 文件
做到這點有兩種方法,一時在插件的根目錄創建一個 uninstall.php 文件,在你的插件被刪除之前會調用執行這個文件,但要注意就是防止有人惡意訪問這個文件我們需要判斷一下 WP_UNINSTALL_PLUGIN 常量是否被定義,沒定義則結束程序:
<?php//防止有人惡意訪問此文件,所以在沒有 WP_UNINSTALL_PLUGIN 常量的情況下結束程序if( !defined( 'WP_UNINSTALL_PLUGIN' ) ) exit(); //可以在要卸載的時候做一些事情,比如刪除一些字段,注銷定時任務delete_option( 'endskin_name' );delete_option( 'endskin_name2' );
卸載鉤子
第二種方法叫做卸載鉤子,在你的根目錄沒有 uninstall.php 文件的時候 WordPress 會去執行卸載鉤子。
例子:
register_uninstall_hook( __FILE__, 'Bing_uninstall_func' );function Bing_uninstall_func(){ //可以在要卸載的時候做一些事情,比如刪除一些字段,注銷定時任務 delete_option( 'endskin_name' ); delete_option( 'endskin_name2' ); }
這些代碼直接放到插件的文件里即可,不過卸載鉤子不能使用類函數,否則會把 $this 保存到數據庫里,所以如果不是萬不得已請盡可能的使用 uninstall.php 文件。
移除自定義文章類型的部分組件
WordPress 自定義文章類型用很多組件,當我們不需要的時候可以通過 remove_post_type_support() 函數來移除掉,下邊是一份可以移除的組件的列表:
- title
- editor
- author
- thumbnail
- excerpt
- trackbacks
- custom-fields
- comments
- revisions
- page-attributes
- post-formats
比如移除掉自帶的 “文章” 文章類型的評論功能:
/** *移除文章的評論功能 *http://www.endskin.com/remove-post-type-support/*/function Bing_remove_post_type_support(){ remove_post_type_support( 'post', 'comments' );}add_action( 'init', 'Bing_remove_post_type_support' );