一、插件加载顺序

1、index.php

2、wp-blog-header.php

3、wp-load.php

4、wp-config.php

5、wp-settings.php

二、创建插件

1、插件名称

(1)名称唯一,不要和其他插件同名。
(2)使用前缀和其他插件区别。
(3)插件名称最好能描述其功能。

2、创建插件

(1)/wp-content/plugins/文件夹
(2)创建插件目录: lt-copyright 文件夹
(3)创建主文件:在lt-copyright 文件夹中创建 lt-copyright.php,编码为UTF-8 没有签名。入口文件要和目录名相同。
(4)主文件标准插件信息头

<?php
/*
Plugin Name: 插件名称
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: 插件的简单描述
Version: 插件版本号, 例如: 1.0
Author: 插件作者
Author URI: http://URI_Of_The_Plugin_Author作者地址
*/
?>

参考地址:https://codex.wordpress.org/zh-cn:%E5%BC%80%E5%8F%91%E4%B8%80%E4%B8%AA%E6%8F%92%E4%BB%B6

(5)启用函数:网站后台启用插件时,运行

// 启用函数:插件启用是运行
function lt_copyright_install(){//往wordpress设置表(options)里添加 option_nama= lt_copyright_text, option_value=<p></p>update_option("lt_copyright_text","<p style='color:red;'>本站点所有文章均为原创,转载请注明出处!</p>");
}
// 注册启用的钩子
register_activation_hook( __FILE__, 'lt_copyright_install' );

 (6)禁用函数:网站后台禁用插件时,运行

// 注册停用的钩子
register_deactivation_hook( __FILE__, 'lt_copyright_uninstall' );
// 停用函数
function lt_copyright_uninstall(){//往wordpress设置表(options)里添加 option_nama= lt_copyright_deactivate, option_value=yesupdate_option("lt_copyright_deactivate","yes");
}

 (7)删除插件

/wp-content/plugins/lt-copyright 下创建 uninstall.php 文件

<?
//如果uninstall 不是从 wordpress 调用,则退出
if( !defined( 'WP_UNINSTALL_PLUGIN' ) ) exit();//删除插件在option表 中 option_nama= lt_copyright_text 的记录//删除插件在option表 中 option_nama= lt_copyright_deactivate 的记录delete_option('lt_copyright_text');delete_option('lt_copyright_deactivate');
?>

注意:会删除 /wp-content/plugins 文件夹下的插件和数据库 options表中数据

 (8)完整代码

lt-copyright.php

<?php
/*
Plugin Name: lt-copyright
Plugin URI: http://www.jxzrj.com
Description: 在页脚显示一段版权信息
Version: 1.0
Author: lt
Author URI: http://jxzrj.com
*/// 启用函数:插件启用是运行
function lt_copyright_install(){//往wordpress设置表(options)里添加 option_nama= lt_copyright_text, option_value=<p></p>update_option("lt_copyright_text","<p style='color:red;'>本站点所有文章均为原创,转载请注明出处!</p>");
}
// 注册启用的钩子
register_activation_hook( __FILE__, 'lt_copyright_install' );// 注册停用的钩子
register_deactivation_hook( __FILE__, 'lt_copyright_uninstall' );
// 停用函数
function lt_copyright_uninstall(){//往wordpress设置表(options)里添加 option_nama= lt_copyright_deactivate, option_value=yesupdate_option("lt_copyright_deactivate","yes");
}?>

uninstall.php

<?
//如果uninstall 不是从 wordpress 调用,则退出
if( !defined( 'WP_UNINSTALL_PLUGIN' ) ) exit();//删除插件在option表 中 option_nama= lt_copyright_text 的记录//删除插件在option表 中 option_nama= lt_copyright_deactivate 的记录delete_option('lt_copyright_text');delete_option('lt_copyright_deactivate');
?>

三、add_action与do_action

网站底部添加:

1、页面调用 wp_footer() 函数

2、wp_footer() 函数在 /wp-includes/general-template.php

3、/wp-content/plugins/lt-copyright/lt-copyright.php

//将 lt_copyright_insert 挂载到 wp_footer 动作钩子
add_action("wp_footer","lt_copyright_insert");
function lt_copyright_insert(){//获取 options 表中 option_nama= lt_copyright_text 记录, option_value的值,并输出echo get_option("lt_copyright_text");
}

WordPress 插件开发教程:插件加载顺序、创建插件、add_action与do_action相关推荐

  1. 单步调试学习WordPress PHP文件的加载顺序

    index.php作为入口,加载的调用栈如下图所示: 加载后在console里打印的加载日志: [Wed Jul 17 11:39:59 2019] 127.0.0.1:56156 [404]: /? ...

  2. nuxt项目:css相关插件加载顺序问题【extract-css-chunks-webpack-plugin】

    一.warning信息 chunk pages/channelManagement/qualification/create/pages/channelManagement/qualification ...

  3. X64dbg-插件基本原理-加载顺序-概述-主目录

    文章目录 1.概述 2.为什么要写插件? 3.了解 x64dbg 插件架构 4.插件加载顺序 5.主目录 1.概述   x64dbg 插件软件开发工具包 (SDK) 用于为 x64dbg 调试器创建插 ...

  4. WordPress插件开发教程1:开发第一个WordPress插件

    一.创建一个插件 第一步:在 wp-content \ plugins 目录新建一个目录,随便起个名字,比如:my-first-plugin.         第二步:进入 my-first-plug ...

  5. 【Youtobe trydjango】Django2.2教程和React实战系列八【渲染数据库数据与模板加载顺序探究】

    [Youtobe trydjango]Django2.2教程和React实战系列八[渲染数据库数据与模板加载顺序探究] 1. 准备数据 2. 渲染数据库数据到模板 3. 如何在app里加载django ...

  6. 情迁红包配合情迁QQ机器人新版作为插件加载的使用教程

    初次体验 如果你第一次打开本文章,我想对你说的是,这文章可能只供参考因为有些设置又了很大的改动,以及方式也不一样了. 插件开发具体还请参考 手机端编写LUA脚本插件https://www.jiansh ...

  7. HTML基础和JSP了解及JSP中代码加载顺序

    HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文 ...

  8. 我的世界Bukkit服务器插件开发教程(一)第一个插件

    一.第一个插件 这一章节,我们会开发第一个属于自己的插件 在这之前,我们还需了解plugin.yml和config.yml,并大概了解插件的原理 plugin.yml 这个文件必须存在,否则读不出来. ...

  9. Ckeditor 的加载顺序

    我们的只用在文件里面引用一个CKEditor的js文件--CKEditor目录下的ckeditor.js文件, 该文件会完成后续的所有的CKEidtor依赖的js文件的加载. 所依赖的js文件加载顺序 ...

最新文章

  1. 用C++开发Web应用
  2. Why am I getting this error “Expected resource of type raw” in Android Studio?
  3. LR(1)分析表-语法树-四元式
  4. UVa10006-Carmichael Numbers
  5. 云小课 | 不小心删除了数据库,除了跑路还能咋办?
  6. 单片机sleep函数的头文件_关于PIC单片机SLEEP指令
  7. layer在html中的data写法,layerdate.html
  8. python cpk计算器_CPK公式
  9. 扩展欧几里得算法——java
  10. cissp认证考试指南_如何通过CISSP考试(信息安全认证)
  11. Clonezilla
  12. PhotoShop 安装PS时提示安装程序检测到计算机重新启动操作可能处于挂起状态,建议您退出安装...
  13. 袋鼠云技术荟 | 某客户生产服务器CPU负载异常处理
  14. 2021天津高考高中成绩查询系统,2021天津地区高考成绩排名查询,天津高考各高中成绩喜报榜单...
  15. 高速公路计算机知识,高速公路基本知识120问
  16. 神州泰岳的服务流程业务方向
  17. 油猴脚本改善浏览器字体显示效果(自用)
  18. 第十六章 Unity的表面着色器探秘(2)
  19. 京东印尼站(JD.ID)绑定连连跨境支付收款教程!
  20. 关于建造的逻辑: BIM和VDC

热门文章

  1. city-picker的使用
  2. 自动化运维saltstack(资源)
  3. mysql查询计算机系信息_在学生管理数据库中查询通信系和计算机系的所有教师信息...
  4. 【软件测试】软件测试的定义、软件测试的目的
  5. linux 切换网络 命令,Linux 的常用网络命令
  6. SpringBoot详解
  7. java:浅谈axis调用webservice接口
  8. PowerBuilder 11.x .NET开发视频教程
  9. 学好编程之GOC语言快速入门(1)
  10. tensorflow预定义经典卷积神经网络和数据集tf.keras.applications