主題下載次數(shù)
服務(wù)網(wǎng)站數(shù)量
本站主題用戶
后臺選項(xiàng)是在WordPress中最重要的數(shù)據(jù),它們存儲著您的博客的各種配置設(shè)置。這些選項(xiàng)可以改變WordPress的顯示。因此,如果我們沒有記住每一個精確值,如何配置他們回到以前的狀態(tài)?
今天,要告訴你如何為WordPress博客創(chuàng)建一個簡單的備份/恢復(fù)功能。有了這個功能,你可以將所有的選項(xiàng)配置備份到另一個地方,可以在任何時間恢復(fù),無需重新配置它們。
在一般情況下,此功能將有兩部分實(shí)現(xiàn),一個是數(shù)據(jù)庫備份導(dǎo)出部分和恢復(fù)數(shù)據(jù)的導(dǎo)入部分。下面,就一步一步的帶大家一起做這個簡單插件。
步驟一:建立一個ieoption.php的文件,下面的操作均在此文件內(nèi),根據(jù)WordPress官方插件的描述建立插件的頭部:
/*
Plugin Name: I/E Option
Plugin URI: http://www.***com/ //此為插件官方地址
Description: 這是一個簡單的備份及恢復(fù)網(wǎng)站選項(xiàng)設(shè)置的插件。
Author: luoboyu
Version: 1.0
Author URI:http://www.***.com/ //此為插件作者地址
*/
實(shí)現(xiàn)功能如下圖:
備份插件啟用
步驟二:在WordPress后臺創(chuàng)建管理頁面,我們需要在后臺創(chuàng)建一個管理頁面,其包括數(shù)據(jù)庫備份導(dǎo)出和恢復(fù)數(shù)據(jù)導(dǎo)出接口。在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() {
// 內(nèi)容導(dǎo)入部分
}
function ie_export_option_page() {
// 內(nèi)容導(dǎo)出部分
}
add_action(‘admin_menu’, ‘register_ie_option’);
注意事項(xiàng):
1、我們使用add_menu_page在管理頁的側(cè)邊欄添加一個新的頂級菜單,其中ie_option_page參數(shù)是回調(diào)函數(shù),輸出頁面內(nèi)容。
2、我們使用add_submenu_page將兩個不同的功能菜單添加到我們剛剛創(chuàng)建的頂級菜單下。
步驟三:創(chuàng)建數(shù)據(jù)庫導(dǎo)出功能:
function ie_export_option_page() {
if (!isset($_POST[‘export’])) {
?>
<div >
<div id=”icon-tools” ><br /></div>
<h2>數(shù)據(jù)庫導(dǎo)出</h2>
<p>當(dāng)你點(diǎn)擊 <tt>備份所有選項(xiàng)</tt>按鈕時, 系統(tǒng)會創(chuàng)建一個文件,保存在電腦上.</p>
<p>此備份文件包括所有的設(shè)置選項(xiàng)</p>
<p>導(dǎo)出后,您可以使用此備份文件恢復(fù)站點(diǎn)設(shè)置或?qū)肓硗獾腤ordPress站</p>
<form method=’post’>
<p >
<?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; //定義將創(chuàng)建的備份文件名
$options = get_alloptions(); //獲取WordPress選項(xiàng)設(shè)置,存入數(shù)組
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();
}
}
注意事項(xiàng):
1、get_alloptions()是將獲取網(wǎng)站上所有的選項(xiàng),并作為一個數(shù)組返回。
2、我們獲取的僅僅是WordPress的選項(xiàng)設(shè)置,不包括其他的數(shù)據(jù)。
步驟四:創(chuàng)建數(shù)據(jù)庫導(dǎo)入功能:
function ie_import_option_page() {
?>
<div >
<div id=”icon-tools” ><br /></div>
<h2>Import</h2>
<?php
if (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))); //獲取文件擴(kuò)展名
$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 ><p>所有選項(xiàng)恢復(fù)成功.</p></div>”;
}
else {
echo “<div ><p>無效文件或文件過大.</p></div>”;
}
}
}
?>
<p>單擊”瀏覽”按鈕,選擇您要恢復(fù)的文件.</p>
<p>單擊重置按鈕,恢復(fù)您的WordPress選項(xiàng)</p>
<form method=’post’ enctype=’multipart/form-data’>
<p >
<?php wp_nonce_field(‘ie-import’); ?>
<input type=’file’ name=’import’ />
<input type=’submit’ name=’submit’ value=’Restore’/>
</p>
</form>
</div>
<?php
}
實(shí)現(xiàn)效果如下圖所示:
備份插件菜單
備份插件導(dǎo)入功能
步驟五:為WordPress創(chuàng)建自定義的一些備份功能:
上面的插件,實(shí)現(xiàn)了備份所有的網(wǎng)站選項(xiàng)get_alloptions的功能。如果你想有自己的特定選項(xiàng),我們可以這樣做:options數(shù)組內(nèi)存儲更多的數(shù)據(jù)即可。
$options = array(‘your_option1_name’ => get_option(‘your_option1_name’), ‘your_option2_name’ => get_option(‘your_option2_name’);
$json_file = json_encode($options);
上面,和大家一起學(xué)習(xí)了創(chuàng)建一個簡單的備份/還原功能的小插件的過程。你應(yīng)該注意到,這個插件僅僅是一個簡單的示例,而不是一個正式的一個。蘿卜魚的目標(biāo)不是寫一個完美的插件,而是展示這一功能實(shí)現(xiàn)的基本原則。通過了解它,你可以創(chuàng)建自己的模板或插件功能,希望此示例對您有幫助,本文由蘿卜居家園網(wǎng)http://www.luoboju.com 原創(chuàng)發(fā)表,轉(zhuǎn)載請注明,謝謝!
主題貓WP建站,累計幫助1300+客戶成功建站,為站長提供支持!
立刻開啟你的建站之旅