在WordPress中,update_option()
和 get_option()
是两个非常常用的函数,它们用于在WordPress数据库中存储和检索插件设置。以下是如何使用这两个函数来处理插件设置的基本步骤:
1. 使用 update_option()
函数保存设置
update_option()
函数用于在WordPress数据库中更新一个选项。如果该选项不存在,它将创建一个新选项。
函数原型:
bool update_option( string $option, mixed $value, string|bool $autoload = 'yes' )
$option
:选项名称(通常是插件的前缀加上设置名称)。$value
:要保存的值。这个值可以是字符串、数组、整数等。$autoload
:是否在WordPress启动时自动加载此选项。默认为 'yes'。
示例代码:
// 假设我们有一个名为 'my_plugin_settings' 的插件设置
$settings = array(
'option1' => 'value1',
'option2' => 'value2',
);
// 更新设置
update_option('my_plugin_settings', $settings);
2. 使用 get_option()
函数获取设置
get_option()
函数用于从WordPress数据库中检索一个选项的值。
函数原型:
mixed get_option( string $option, mixed $default = false )
$option
:要检索的选项名称。$default
:如果选项不存在,则返回的默认值。
示例代码:
// 获取之前保存的设置
$settings = get_option('my_plugin_settings', array());
// 检查设置是否成功获取
if (is_array($settings)) {
// 使用设置
$option1_value = $settings['option1'];
$option2_value = $settings['option2'];
}
完整示例
以下是一个简单的示例,展示了如何在插件中使用这两个函数来处理设置:
// 保存设置
function my_plugin_save_settings() {
if (isset($_POST['my_plugin_settings_nonce']) && wp_verify_nonce($_POST['my_plugin_settings_nonce'], 'my_plugin_settings')) {
$settings = array(
'option1' => sanitize_text_field($_POST['option1']),
'option2' => sanitize_text_field($_POST['option2']),
);
update_option('my_plugin_settings', $settings);
}
}
// 获取设置
function my_plugin_get_settings() {
$settings = get_option('my_plugin_settings', array(
'option1' => 'default_value1',
'option2' => 'default_value2',
));
return $settings;
}
// 在插件中注册一个设置表单的处理钩子
add_action('admin_post_save_my_plugin_settings', 'my_plugin_save_settings');
// 在管理页面输出设置表单
function my_plugin_settings_page() {
?>
<form action="<?php echo esc_url(admin_url('admin-post.php')); ?>" method="post">
<?php wp_nonce_field('my_plugin_settings', 'my_plugin_settings_nonce'); ?>
<input type="hidden" name="action" value="save_my_plugin_settings">
<label for="option1">Option 1:</label>
<input type="text" id="option1" name="option1" value="<?php echo esc_attr(my_plugin_get_settings()['option1']); ?>"><br>
<label for="option2">Option 2:</label>
<input type="text" id="option2" name="option2" value="<?php echo esc_attr(my_plugin_get_settings()['option2']); ?>"><br>
<input type="submit" value="Save Settings">
</form>
<?php
}
在这个示例中,我们定义了两个函数 my_plugin_save_settings()
和 my_plugin_get_settings()
来保存和获取插件设置。我们还创建了一个表单,用户可以通过它提交新的设置值。当表单被提交时,它将通过 admin_post_save_my_plugin_settings
动作触发 my_plugin_save_settings()
函数。