我正在开发一个简单的插件(一种维护插件),根据用户页面选项选择更新主页。
function set_hp(){
$page = get_option(\'get_the_page\');
if ( $page )
{
update_option( \'page_on_front\', $page );
update_option( \'show_on_front\', \'page\' );
}
}
add_action(\'wp\', \'set_hp\');
现在主页更新为用户选择的主页。有没有办法,当插件被停用时,
the previously saved homepage (*如reading.php front page*中的设置)已更新。
PS:我试过了
register_deactivation_hook( __FILE__, \'myplugin_deactivate\' );
function myplugin_deactivate(){
delete_option( \'page_on_front\', $page );
delete_option( \'show_on_front\', \'page\' );
}
但这会删除主页选项,用户需要重新设置。
谢谢
SO网友:Tim Malone
WordPress要知道上一个选项是什么,唯一的方法是在更改之前保存它-因为您正在替换内置选项,所以它无法知道如何返回该选项。
因此,您可以添加一个自定义的“备份”选项,在停用时恢复该选项。
当您的选项第一次设置时,如下所示:
function set_hp(){
update_option( \'wpse_231804_backup_page_on_front\', get_option( \'page_on_front\' ) );
update_option( \'wpse_231804_backup_show_on_front\', get_option( \'show_on_front\' ) );
// ... include the rest of your code here ...
}
停用时使用简单的反转:
function myplugin_deactivate(){
update_option( \'page_on_front\', get_option( \'wpse_231804_backup_page_on_front\' ) );
update_option( \'show_on_front\', get_option( \'wpse_231804_backup_show_on_front\' ) );
}