WordPress中卸载插件以及移除文章类型组件的代码示例

 更新时间:2015年12月29日 17:47:22   作者:斌果  
这篇文章主要介绍了WordPress中卸载插件以及移除文章类型组件的代码示例,包括卸载函数钩子的方法介绍,需要的朋友可以参考下

插件卸载
在开发插件的过程中,免不了在数据库创建一些字段乃至表,或者创建了一些定时任务,当插件被删除的时候这些东西就会被留在 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' );

相关文章

  • Java Collections.sort()排序代码案例

    Java Collections.sort()排序代码案例

    这篇文章主要介绍了Java Collections.sort()排序代码案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • spring boot整合mongo查询converter异常排查记录

    spring boot整合mongo查询converter异常排查记录

    这篇文章主要为大家介绍了spring boot整合mongo查询时抛出converter异常的排查解决记录,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-03-03
  • Java Web实现登录页面验证码验证功能

    Java Web实现登录页面验证码验证功能

    这篇文章主要介绍了Java Web登录页面验证码验证功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • Spring boot实现热部署的两种方式详解

    Spring boot实现热部署的两种方式详解

    这篇文章主要介绍了Spring boot实现热部署的两种方式,这两种方法分别是使用 Spring Loaded和使用spring-boot-devtools进行热部署,文中给出了详细示例代码和介绍,需要的朋友可以参考学习,下面来一起看看吧。
    2017-04-04
  • 最新IDEA 2022基于JVM极致优化 IDEA启动速度的方法

    最新IDEA 2022基于JVM极致优化 IDEA启动速度的方法

    这篇文章主要介绍了IDEA 2022最新版 基于 JVM极致优化 IDEA 启动速度,需要的朋友可以参考下
    2022-08-08
  • 详解ThreadLocal为什么会内存溢出原理

    详解ThreadLocal为什么会内存溢出原理

    这篇文章主要为大家介绍了ThreadLocal为什么会内存溢出原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • springboot+mybatis配置clickhouse实现插入查询功能

    springboot+mybatis配置clickhouse实现插入查询功能

    这篇文章主要介绍了springboot+mybatis配置clickhouse实现插入查询功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • JAVA的Dubbo如何实现各种限流算法

    JAVA的Dubbo如何实现各种限流算法

    Dubbo是一种高性能的Java RPC框架,广泛应用于分布式服务架构中,在Dubbo中实现限流可以帮助服务在高并发场景下保持稳定性和可靠性,常见的限流算法包括固定窗口算法、滑动窗口算法、令牌桶算法和漏桶算法,在Dubbo中集成限流器可以通过实现自定义过滤器来实现
    2025-01-01
  • Java中常用的设计模式之单例模式详解

    Java中常用的设计模式之单例模式详解

    这篇文章主要为大家详细介绍了Java中常用的设计模式之单例模式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • Java中关于控制台读取数字或字符串的方法

    Java中关于控制台读取数字或字符串的方法

    下面小编就为大家带来一篇Java中关于控制台读取数字或字符串的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10

最新评论