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)文章
spring?boot整合mongo查詢converter異常排查記錄
這篇文章主要為大家介紹了spring?boot整合mongo查詢時(shí)拋出converter異常的排查解決記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03
Java Web實(shí)現(xiàn)登錄頁面驗(yàn)證碼驗(yàn)證功能
這篇文章主要介紹了Java Web登錄頁面驗(yàn)證碼驗(yàn)證功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
Spring boot實(shí)現(xiàn)熱部署的兩種方式詳解
這篇文章主要介紹了Spring boot實(shí)現(xiàn)熱部署的兩種方式,這兩種方法分別是使用 Spring Loaded和使用spring-boot-devtools進(jìn)行熱部署,文中給出了詳細(xì)示例代碼和介紹,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。2017-04-04
最新IDEA?2022基于JVM極致優(yōu)化?IDEA啟動(dòng)速度的方法
這篇文章主要介紹了IDEA?2022最新版?基于?JVM極致優(yōu)化?IDEA?啟動(dòng)速度,需要的朋友可以參考下2022-08-08
詳解ThreadLocal為什么會(huì)內(nèi)存溢出原理
這篇文章主要為大家介紹了ThreadLocal為什么會(huì)內(nèi)存溢出原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
springboot+mybatis配置clickhouse實(shí)現(xiàn)插入查詢功能
這篇文章主要介紹了springboot+mybatis配置clickhouse實(shí)現(xiàn)插入查詢功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
JAVA的Dubbo如何實(shí)現(xiàn)各種限流算法
Dubbo是一種高性能的Java RPC框架,廣泛應(yīng)用于分布式服務(wù)架構(gòu)中,在Dubbo中實(shí)現(xiàn)限流可以幫助服務(wù)在高并發(fā)場(chǎng)景下保持穩(wěn)定性和可靠性,常見的限流算法包括固定窗口算法、滑動(dòng)窗口算法、令牌桶算法和漏桶算法,在Dubbo中集成限流器可以通過實(shí)現(xiàn)自定義過濾器來實(shí)現(xiàn)2025-01-01
Java中關(guān)于控制臺(tái)讀取數(shù)字或字符串的方法
下面小編就為大家?guī)硪黄狫ava中關(guān)于控制臺(tái)讀取數(shù)字或字符串的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10

