事实证明,在激活时获取URL不太可能通过标准$_GET
所以WP有这样的钩子。
插件激活
我需要检查存储在中的备份文件
wp-content
根目录,如果它们之前是在取消激活或更新期间创建的,则将其复制到插件文件夹。
register_activation_hook(__FILE__, function()
{
add_option(\'move_blocks_activated\',\'move-blocks\');
if( file_exists(WP_CONTENT_DIR.\'/moveblocktmp/override.ini\') ) {
copy(WP_CONTENT_DIR.\'/moveblocktmp/override.ini\', MYPLGPATH.\'/msg/override.ini\');
}
}
插件停用时的操作
Deactivate
链接已处理。这在插件更新期间起作用,以存储用户创建的文件,同时删除和替换插件。
register_deactivation_hook(__FILE__, function()
{
add_option(\'move_blocks_deactivated\',\'move-blocks\');
// create backup directory
if( !file_exists(WP_CONTENT_DIR.\'/moveblocktmp\') ) {
mkdir(WP_CONTENT_DIR.\'/moveblocktmp\',0755);
}
// copy files for backup
if( file_exists(MYPLGPATH.\'/msg/override.ini\') ) {
copy(MYPLGPATH.\'/msg/override.ini\', WP_CONTENT_DIR.\'/moveblocktmp/override.ini\');
}
}
先前流程之后的操作
add_action(\'admin_init\', function()
{
// delete the previously created DB option row
if( !is_null(get_option(\'move_blocks_activated\')) ) {
delete_option(\'move_blocks_activated\');
}
if( !is_null(get_option(\'move_blocks_deactivated\')) ) {
delete_option(\'move_blocks_deactivated\');
}
});
使用插件删除
uninstall.php
方法。
<?php
if( !defined(\'WP_UNINSTALL_PLUGIN\') ) {
die;
}
// delete the backup directory
if( file_exists(WP_CONTENT_DIR.\'/moveblocktmp\') )
rmdir(WP_CONTENT_DIR.\'/moveblocktmp\');
// rmdir() will not delete a directory with files. I use a recursive function.