WordPress中卸載插件以及移除文章類型組件的代碼示例
插件卸載
在開發(fā)插件的過程中,免不了在數(shù)據(jù)庫創(chuàng)建一些字段乃至表,或者創(chuàng)建了一些定時(shí)任務(wù),當(dāng)插件被刪除的時(shí)候這些東西就會(huì)被留在 WordPress 上,變成垃圾,作為負(fù)責(zé)的開發(fā)者,有必要在刪除插件的時(shí)候幫助用戶刪除掉我們留下的痕跡。
uninstall.php 文件
做到這點(diǎn)有兩種方法,一時(shí)在插件的根目錄創(chuàng)建一個(gè) uninstall.php 文件,在你的插件被刪除之前會(huì)調(diào)用執(zhí)行這個(gè)文件,但要注意就是防止有人惡意訪問這個(gè)文件我們需要判斷一下 WP_UNINSTALL_PLUGIN 常量是否被定義,沒定義則結(jié)束程序:
<?php //防止有人惡意訪問此文件,所以在沒有 WP_UNINSTALL_PLUGIN 常量的情況下結(jié)束程序 if( !defined( 'WP_UNINSTALL_PLUGIN' ) ) exit(); //可以在要卸載的時(shí)候做一些事情,比如刪除一些字段,注銷定時(shí)任務(wù) delete_option( 'endskin_name' ); delete_option( 'endskin_name2' );
卸載鉤子
第二種方法叫做卸載鉤子,在你的根目錄沒有 uninstall.php 文件的時(shí)候 WordPress 會(huì)去執(zhí)行卸載鉤子。
例子:
register_uninstall_hook( __FILE__, 'Bing_uninstall_func' ); function Bing_uninstall_func(){ //可以在要卸載的時(shí)候做一些事情,比如刪除一些字段,注銷定時(shí)任務(wù) delete_option( 'endskin_name' ); delete_option( 'endskin_name2' ); }
這些代碼直接放到插件的文件里即可,不過卸載鉤子不能使用類函數(shù),否則會(huì)把 $this 保存到數(shù)據(jù)庫里,所以如果不是萬不得已請(qǐng)盡可能的使用 uninstall.php 文件。
移除自定義文章類型的部分組件
WordPress 自定義文章類型用很多組件,當(dāng)我們不需要的時(shí)候可以通過 remove_post_type_support() 函數(shù)來移除掉,下邊是一份可以移除的組件的列表:
- title
- editor
- author
- thumbnail
- excerpt
- trackbacks
- custom-fields
- comments
- revisions
- page-attributes
- post-formats
比如移除掉自帶的 “文章” 文章類型的評(píng)論功能:
/** *移除文章的評(píng)論功能 *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' );
相關(guān)文章
java實(shí)現(xiàn)創(chuàng)建臨時(shí)文件然后在程序退出時(shí)自動(dòng)刪除文件
這篇文章主要介紹了java實(shí)現(xiàn)創(chuàng)建臨時(shí)文件然后在程序退出時(shí)自動(dòng)刪除文件,從個(gè)人項(xiàng)目中提取出來的,小伙伴們可以直接拿走使用。2015-02-02java中Memcached的使用實(shí)例(包括與Spring整合)
這篇文章主要介紹了java中Memcached的使用實(shí)例(包括與Spring整合),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07java數(shù)據(jù)類型和運(yùn)算符的深入講解
這篇文章主要給大家介紹了關(guān)于java數(shù)據(jù)類型和運(yùn)算符的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Java多線程編程之使用Exchanger數(shù)據(jù)交換實(shí)例
這篇文章主要介紹了Java多線程編程之使用Exchanger數(shù)據(jù)交換實(shí)例,本文直接給出實(shí)例代碼,需要的朋友可以參考下2015-05-05SpringCloud使用AOP統(tǒng)一處理Web請(qǐng)求日志實(shí)現(xiàn)步驟
這篇文章主要為大家介紹了SpringCloud使用AOP統(tǒng)一處理Web請(qǐng)求日志實(shí)現(xiàn)步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08