在WordPress中,update_option()
和 get_option()
是处理插件设置的两个非常关键的函数。以下是如何使用这两个函数来保存和检索插件设置的步骤:
1. 使用 get_option()
函数检索插件设置
get_option()
函数用于从WordPress数据库中检索一个选项的值。如果你没有为该函数指定第二个参数(默认值),那么在没有找到选项时,它将返回 false
。
// 假设你的插件设置选项名为 'my_plugin_settings'
$settings = get_option('my_plugin_settings');
// 如果选项不存在,你可以提供一个默认值
$default_settings = array('option1' => 'value1', 'option2' => 'value2');
$settings = get_option('my_plugin_settings', $default_settings);
2. 使用 update_option()
函数更新插件设置
update_option()
函数用于更新WordPress数据库中的选项值。如果你尝试更新的选项不存在,该函数将创建它。
// 假设你需要更新插件的设置
$new_settings = array(
'option1' => 'new_value1',
'option2' => 'new_value2'
);
// 使用 update_option() 更新设置
update_option('my_plugin_settings', $new_settings);
完整示例
以下是一个简单的示例,演示如何在插件中使用 get_option()
和 update_option()
来处理设置。
// 在插件激活时设置默认选项
function my_plugin_activate() {
$default_settings = array(
'option1' => 'default_value1',
'option2' => 'default_value2'
);
add_option('my_plugin_settings', $default_settings);
}
register_activation_hook(__FILE__, 'my_plugin_activate');
// 在插件设置页面添加表单
function my_plugin_settings_page() {
?>
<div class="wrap">
<h1>My Plugin Settings</h1>
<form method="post" action="options.php">
<?php
settings_fields('my_plugin_settings_group');
do_settings_sections('my-plugin-settings');
?>
<table class="form-table">
<tr valign="top">
<th scope="row">Option 1</th>
<td><input type="text" name="my_plugin_settings[option1]" value="<?php echo esc_attr(get_option('my_plugin_settings')['option1']); ?>" /></td>
</tr>
<tr valign="top">
<th scope="row">Option 2</th>
<td><input type="text" name="my_plugin_settings[option2]" value="<?php echo esc_attr(get_option('my_plugin_settings')['option2']); ?>" /></td>
</tr>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php
}
// 注册设置
function my_plugin_register_settings() {
register_setting('my_plugin_settings_group', 'my_plugin_settings');
}
add_action('admin_init', 'my_plugin_register_settings');
// 添加设置菜单
function my_plugin_add_menu() {
add_options_page('My Plugin Settings', 'My Plugin', 'manage_options', 'my-plugin-settings', 'my_plugin_settings_page');
}
add_action('admin_menu', 'my_plugin_add_menu');
在这个例子中,我们首先在插件激活时设置默认选项,然后在管理菜单中添加一个设置页面。在设置页面中,我们使用 settings_fields()
和 do_settings_sections()
函数来处理表单提交,并且通过 register_setting()
函数注册设置,这样 update_option()
就会在表单提交时被调用,更新选项值。