激活挂钩只有在插件被激活后才会运行。所以只有一次,也只有在那一次请求中。这意味着允许插件的作者在插件激活后执行一些操作。只需执行一次的操作。例如,如果插件使用自定义数据库表,则可以使用激活挂钩创建此类表。
另一方面add_action
如果您希望它在请求期间运行,则必须每次都为每个请求执行。
若插件并没有激活,那个么它的代码就不会再运行,所以它的动作就不会被执行。
这意味着:
在这种情况下,不需要使用激活挂钩每次都必须添加动作你不需要删除你的操作-在你的插件被停用后,它们不会被执行以下是修复后的代码:
function my_general_section() {
register_setting(\'general\',\'option_1\', \'esc_attr\');
register_setting(\'general\',\'option_2\', \'esc_attr\');
add_settings_section(
\'my_settings_section\', // Section ID
\'My Options Title\', // Section Title
\'my_section_options_callback\', // Callback
\'general\' // What Page? This makes the section show up on the General Settings Page
);
add_settings_field( // Option 1
\'option_1\', // Option ID
\'Option 1\', // Label
\'my_textbox_callback\', // !important - This is where the args go!
\'general\', // Page it will be displayed (General Settings)
\'my_settings_section\', // Name of our section
array( // The $args
\'option_1\' // Should match Option ID
)
);
add_settings_field( // Option 2
\'option_2\', // Option ID
\'Option 2\', // Label
\'my_textbox_callback\', // !important - This is where the args go!
\'general\', // Page it will be displayed
\'my_settings_section\', // Name of our section (General Settings)
array( // The $args
\'option_2\' // Should match Option ID
)
);
}
function my_section_options_callback() { // Section Callback
echo \'<p>A little message on editing info</p>\';
}
function my_textbox_callback($args) { // Textbox Callback
$option = get_option($args[0]);
echo \'<input type="text" id="\'. $args[0] .\'" name="\'. $args[0] .\'" value="\' . $option . \'" />\';
}
add_action(\'admin_init\', \'my_general_section\');