后台选项是在WordPress中最重要的数据,它们存储着您的博客的各类配置设置。这些选项可以改变WordPress的显示。因此,如果我们没有记住每一个切确值,如何配置他们回到以前的状态?
今天,要奉告你如作甚WordPress博客成立一个简单的备份/恢复功能。有了这个功能,你可以将所有的选项配置备份到另外一个处所,可以在任什么时候间恢复,无需重新配置它们。
在一般情况下,此功能将有两部分实现,一个是数据库备份导出部分和恢复数据的导入部分。下面,就一步一步的带年夜家一起做这个简单插件。
步调一:成立一个ieoption.php的文件,下面的操作均在此文件内,按照wordpress官方插件的描述成立插件的头部:
/*
Plugin Name: I/E Option
Plugin URI: .***com/ //此为插件官方地址
Description: 这是一个简单的备份及恢复网站选项设置的插件。
Author: luoboyu
Version: 1.0
Author URI:.***/ //此为插件作者地址
*/
实现功能如下图:
备份插件启用
步调二:在wordpress后台成立办理页面,我们需要在后台成立一个办理页面,其包含数据库备份导出和恢复数据导出接口。在function中放入下面的代码。
function register_ie_option() {add_menu_page('IE Option Page', 'IE Option', 'activate_plugins', 'ie-option', 'ie_option_page', '', 76);add_submenu_page('ie-option', 'Import', 'Import', 'activate_plugins', 'ie-import-option', 'ie_import_option_page');add_submenu_page('ie-option', 'Export', 'Export', 'activate_plugins', 'ie-export-option', 'ie_export_option_page');}function ie_option_page() {}function ie_import_option_page() {// 内容导入部分}function ie_export_option_page() {// 内容导出部分}add_action('admin_menu', 'register_ie_option');
注意事项:
1、我们使用add_menu_page在办理页的侧边栏添加一个新的顶级菜单,其中ie_option_page参数是回调函数,输出页面内容。
2、我们使用add_submenu_page将两个不合的功能菜单添加到我们方才成立的顶级菜单下。
步调三:成立数据库导出功能:
function ie_export_option_page() {if (!isset($_POST['export'])) {?><div class="wrap"><div id="icon-tools" class="icon32"><br /></div><h2>数据库导出</h2><p>当你点击 <tt>备份所有选项</tt>按钮时, 系统会成立一个文件,保存在电脑上.</p><p>此备份文件包含所有的设置选项</p><p>导出后,您可使用此备份文件恢复站点设置或导入别的的wordpress站</p><form method='post'><p class="submit"><?php wp_nonce_field('ie-export'); ?><input type='submit' name='export' value='Backup all options'/></p></form></div><?php}elseif (check_admin_referer('ie-export')) {$blogname = str_replace(" ", "", get_option('blogname'));$date = date("m-d-Y");$json_name = $blogname."-".$date; //定义将成立的备份文件名$options = get_alloptions(); //获得wordpress选项设置,存入数组foreach ($options as $key => $value) {$value = maybe_unserialize($value);$need_options[$key] = $value;}$json_file = json_encode($need_options);ob_clean();echo $json_file;header("Content-Type: text/json; charset=" . get_option( 'blog_charset'));header("Content-Disposition: attachment; filename=$json_name.json");exit();}}
注意事项:
1、get_alloptions()是将获得网站上所有的选项,并作为一个数组返回。
2、我们获得的仅仅是wordpress的选项设置,不包含其他的数据。
步调四:成立数据库导入功能:
function ie_import_option_page() {?><div class="wrap"><div id="icon-tools" class="icon32"><br /></div><h2>Import</h2><?phpif (isset($_FILES['import']) && check_admin_referer('ie-import')) {if ($_FILES['import']['error'] > 0) {wp_die("Error happens");}else {$file_name = $_FILES['import']['name']; //获得文件名$file_ext = strtolower(end(explode(".", $file_name))); //获得文件扩大名$file_size = $_FILES['import']['size']; //获得文件年夜小if (($file_ext == "json") && ($file_size < 500000)) {$encode_options = file_get_contents($_FILES['import']['tmp_name']);$options = json_decode($encode_options, true);foreach ($options as $key => $value) {update_option($key, $value);}echo "<div class='updated'><p>所有选项恢复成功.</p></div>";}else {echo "<div class='error'><p>无效文件或文件过年夜.</p></div>";}}}?><p>单击"阅读"按钮,选择您要恢复的文件.</p><p>单击重置按钮,恢复您的wordpress选项</p><form method='post' enctype='multipart/form-data'><p class="submit"><?php wp_nonce_field('ie-import'); ?><input type='file' name='import' /><input type='submit' name='submit' value='Restore'/></p></form></div><?php}