写WordPress插件,想通过register_activation_hook来初始化自己的变量,可是发现无法复制,百思不得其解。
Google了一下,两个很好的解释:
http://timneill.net/2013/01/help-register_activation_hook-isnt-working/
http://codex.wordpress.org/Function_Reference/register_activation_hook
原因是因为,写好的方法要被其他方法activate_plugin()调用,但是在这个方法中,用户定义的方法和变量会默认为非全局(global)变量。
解决方案:将想初始化的变量显式定义为global (如下$a)
<?php
global $a;
register_activation_hook(__FILE__, 'set_a');
function set_a(){
global $a;
$a = 5;
}
?>