我目前使用update_option(name,value)單獨存儲所有主題選項;函數,但我正在考慮將它們全部放入數組中,將其序列化,並在數據庫中存儲單個選項。WordPress存儲主題選項
這樣更有效率嗎?
我目前使用update_option(name,value)單獨存儲所有主題選項;函數,但我正在考慮將它們全部放入數組中,將其序列化,並在數據庫中存儲單個選項。WordPress存儲主題選項
這樣更有效率嗎?
是的,如果你在從DB獲取配置之後做了一些處理(讀取:反序列化)!
根據選項的數量,您將查詢保存到數據庫。
序列化不是必需的。內置的方法可以將主題選項整齊地存儲在數組中。
下面是一個完整的例子包括所有必要的代碼:
首先,在主題functions.php文件,你必須寫一個小功能,並使用WordPress的鉤子註冊,您將使用設置激活它:
<?php
function my_theme_admin_init() {
register_setting('my_options', 'my_theme_options');
}
add_action('admin_init', 'my_theme_admin_init');
?>
然後,在你想要使用的選項的地方,使用這一點的HTML和PHP。 (注意,該表單員額options.php這樣做,這樣利用WordPress的內置功能來處理存儲選項你):
<form method="post" action="options.php">
<?php
// Load the options from the WP db
$options = get_option('my_theme_options');
// WP built-in function to display the appropriate fields for saving options
settings_fields("my_options"); ?>
<table class="form-table">
<tr>
<th scope="row">Facebook URL:</th>
<td>
<input type="text" name="my_theme_options[facebook]" size="40" value="<?php echo stripslashes($options["facebook"]); ?>" />
</td>
</tr>
<tr>
<th scope="row">Twitter URL:</th>
<td>
<input type="text" name="my_theme_options[twitter]" size="40" value="<?php echo stripslashes($options["twitter"]); ?>" />
</td>
</tr>
<tr>
<th scope="row">LinkedIn URL:</th>
<td>
<input type="text" name="my_theme_options[linkedin]" size="40" value="<?php echo stripslashes($options["linkedin"]); ?>" />
</td>
</tr>
</table>
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
</p>
</form>
感謝您的答覆! – 2011-03-04 23:18:36