wordpress创建模板

wordpress中的插件主要是用来完善系统中某些独立的功能块。而其归根到底就是保存一些OPTION配置或日志相关的META信息,然后根据这些数据信息来表现出某个效果。

在插件的制作中,主要的机制要归功于“钩子”,他使得整个系统各个位置的信息可以得到很好的扩展和重构。而其中的钩子又分成了两类:事件和数据钩子。分别的工作为:在某个事件点上执行相关的动作;重构某个数据。其实从程序的角度两个功能是一样的,只样为了区分这个钩子是负责处理某个动作和重构某个数据。这样我们就可以利用这种机制在根据系统提供的各种钩子做出各种自己想要的插件出来。

 
  1. function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) {

  2. }

  3. function add_filter($tag, $function_to_add, $priority = 10, $accepted_args = 1) {

  4. }

一个独立的插件他可能在运行之前需要保存有运行的配置信息,此时就需要在激法插件时,先将配置信息写入数据库;而当禁用插件时,应当将此相关信息清除,确保插件不会产生垃圾信息。(在制作的过程中应该尽的减少耦合性,确定是一个独立体)此时我们会在激法和禁用插件这两个钩子上进行我们的数据初始化和清除的ACTION了。

 
  1. function register_activation_hook($file, $function) {

  2. }

  3. function register_deactivation_hook($file, $function) {

  4. }

在做完了插件初始化和禁用的功能后,接下的工作就是插件要实现的功能而已了。

而在这个过程中,又可以分为以下的几个步骤:

  • 加载语言包(可以这个事件应该放在全局时处理,也就是要放在载入插件文件时加载)
  • 初始化过程中的相关过程变量
  • 初始化钩子
  • 钩子相关功能函数的实现

而这个过程我们可以面向对象的写法来制作:

 
  1. <?php

  2. class Test

  3. {

  4. /**

  5. * 构造函数

  6. *

  7. * @return Test

  8. */

  9. function Test()

  10. {

  11. // 加载语言包

  12. load_plugin_textdomain('wp-test', str_replace(ABSPATH, '', dirname(__FILE__)));

  13. // 初始化钩子

  14. register_activation_hook(__FILE__, array(& $this, 't_activation'));

  15. register_deactivation_hook(__FILE__, array(& $this, 't_deactivation'));

  16. add_action('admin_menu', array(& $this, 'test_menu'));

  17. add_filter('template', array(& $this, 't_template'));

  18. }

  19.  

  20. /**

  21. * 激法插件

  22. *

  23. */

  24. function t_activation()

  25. {

  26. // TODO

  27. }

  28.  

  29. /**

  30. * 禁用插件

  31. *

  32. */

  33. function t_deactivation()

  34. {

  35. // TODO

  36. }

  37.  

  38. /**

  39. * 后台菜单

  40. *

  41. */

  42. function t_menu()

  43. {

  44. add_options_page(__('WordPress Test', 'wp-test'), __('WordPress Test', 'wp-test'), 'manage_options', 'wp-test-options', 't_admin_form');

  45. }

  46.  

  47. /**

  48. * 后台选项处理

  49. *

  50. */

  51. function t_admin_form()

  52. {

  53. // TODO

  54. }

  55.  

  56. /**

  57. * 根据后台的配置信息重构数据

  58. *

  59. */

  60. function t_template()

  61. {

  62. // TODO

  63. }

  64. }

  65.  

  66. /**

  67. * 初始化对象

  68. *

  69. */

  70. $test = new Test();

  71. ?>

至此一个简单的插件制作过程序就结束了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值