如何恢复以前保存的选项?

时间:2016-07-08 作者:Ayanize

我正在开发一个简单的插件(一种维护插件),根据用户页面选项选择更新主页。

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\' );
}
但这会删除主页选项,用户需要重新设置。

谢谢

1 个回复
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\' ) );

}