在WordPress中,update_option()
和 get_option()
是两个非常常用的函数,用于保存和检索插件或主题的设置。以下是如何使用这两个函数的基本步骤:
保存插件设置
使用 update_option()
函数可以将数据保存到WordPress的数据库中。这个函数接受两个参数:第一个是选项名称,第二个是要保存的数据。
function save_plugin_settings($settings) {
// update_option() 函数用于保存设置
update_option('plugin_settings_option_name', $settings);
}
// 假设我们有一个表单提交了以下设置
$settings = array(
'setting1' => 'value1',
'setting2' => 'value2',
// 更多设置...
);
// 调用函数保存设置
save_plugin_settings($settings);
在这个例子中,plugin_settings_option_name
是一个自定义的选项名称,用于唯一标识你的插件设置。$settings
是一个数组,包含了你想要保存的设置。
检索插件设置
使用 get_option()
函数可以从数据库中检索之前保存的设置。这个函数接受一个参数,即选项名称。
function get_plugin_settings() {
// get_option() 函数用于检索设置
$settings = get_option('plugin_settings_option_name', array());
// 如果没有设置,返回一个空数组或默认设置
return $settings;
}
// 调用函数获取设置
$plugin_settings = get_plugin_settings();
// 使用设置
// 例如:echo $plugin_settings['setting1'];
在这个例子中,get_option()
的第二个参数是一个默认值,如果数据库中没有找到对应的选项,它会返回这个默认值。在这里,如果没有找到设置,它会返回一个空数组。
完整示例
以下是一个简单的示例,展示了如何在插件中使用这两个函数:
// 保存插件设置
function save_my_plugin_settings() {
if (isset($_POST['save_settings'])) {
$settings = array(
'setting1' => sanitize_text_field($_POST['setting1']),
'setting2' => sanitize_text_field($_POST['setting2']),
// 更多设置...
);
update_option('my_plugin_settings', $settings);
}
}
// 添加一个管理菜单项来保存设置
function my_plugin_menu() {
add_menu_page(
'My Plugin Settings',
'My Plugin',
'manage_options',
'my-plugin-settings',
'my_plugin_settings_page',
'dashicons-admin-generic',
80
);
}
// 输出设置表单
function my_plugin_settings_page() {
?>
<div class="wrap">
<h1>My Plugin Settings</h1>
<form method="post" action="">
<table class="form-table">
<tr valign="top">
<th scope="row">Setting 1</th>
<td><input type="text" name="setting1" value="<?php echo esc_attr(get_option('my_plugin_settings')['setting1']); ?>" /></td>
</tr>
<tr valign="top">
<th scope="row">Setting 2</th>
<td><input type="text" name="setting2" value="<?php echo esc_attr(get_option('my_plugin_settings')['setting2']); ?>" /></td>
</tr>
<!-- 更多设置... -->
</table>
<?php submit_button('Save Settings'); ?>
</form>
</div>
<?php
}
// 在admin_init时保存设置
add_action('admin_init', 'save_my_plugin_settings');
// 添加管理菜单
add_action('admin_menu', 'my_plugin_menu');
在这个例子中,我们创建了一个管理菜单项,用户可以在其中输入设置,并通过表单提交。当表单被提交时,save_my_plugin_settings()
函数会被调用,并使用 update_option()
保存设置。my_plugin_settings_page()
函数用于输出设置表单,并使用 get_option()
来填充表单字段的值。