会员登录 您是新人?

   

QQ登录

会员注册

       

WP管理员之家

WordPress插件开发常用函数-register_activation_hook()

  1. register_activation_hook函数 (WordPress 2.0版本被引入) 寄存一个插件函数,该插件函数在插件被激活时运行。  
  2.   
  3. 该函数比activate_pluginname动作使用更加方便。  
  4.   
  5. 用法与参数  
  6.   
  7. $file$function); ?>   
  8.   
  9. $file  
  10.   
  11. (字符串)wp-content/plugins目录下的主插件文件路径。可运行完全路径。  
  12.   
  13. $function  
  14.   
  15. (回调)激活插件后将运行的函数。任何PHP回调虚拟型态都可运行。  
  16.   
  17. 示例  
  18.   
  19. 如果在以下任一位置的主插件文件中有一个名为myplugin_activate()的函数  
  20.   
  21. wp-content/plugins/myplugin.php or  
  22. wp-content/plugins/myplugin/myplugin.php  
  23. 可使用以下代码:  
  24.   
  25. register_activation_hook( __FILE__, 'myplugin_activate' );    
  26. 一旦激活插件, myplugin_activate()函数将被调用。这比使用activate_pluginname动作更为可靠。  
  27.   
  28. 变量范围注意事项  
  29.   
  30. 用户使用全局变量时,可能发生以下情况:传递给register_activation_hook()的函数无法在被调用时访问全局变量,即使用以下方式在函数内声明全局变量范围:  
  31.   
  32. $myvar='whatever';      
  33.   
  34. function myplugin_activate() {      
  35.   
  36.   global $myvar;      
  37.   echo $myvar// this will NOT be 'whatever'    
  38. }      
  39.   
  40. register_activation_hook( __FILE__, 'myplugin_activate' );    
  41. 这是因为在原先的范围内,插件并不包含在全局变量范围内,而是包含在activate_plugin函数中,因此插件“主体”未被自动归入全局变量范围。  
  42.   
  43. 这就是编码时要*一直*保持明确表达的原因。如果希望将变量变成全局变量,就需要以同样方式声明。如果需要在插件主体中使用变量,就要在插件主体中作相应声明。  
  44.   
  45. 插件被激活时会被归入另一个函数,而与此同时在该函数内(指定为activate_plugin()函数)调用myplugin_activate()。这样主体变量成为activate_plugin()函数的的一部分且不成为全局变量,除非用户明确指定全局变量范围:  
  46.   
  47. global $myvar;    
  48. $myvar='whatever';      
  49.   
  50. function myplugin_activate() {      
  51.   global $myvar;      
  52.   echo $myvar// this will be 'whatever'    
  53. }      
  54.   
  55. register_activation_hook( __FILE__, 'myplugin_activate' );    

在线留言

您的昵称 *

您的邮箱 *

您的网站

评论内容

  1. 还没有任何评论,你来说两句吧

客服微信