在WordPress中,update_option()
和 get_option()
是两个非常常用的函数,用于保存和检索插件或主题的设置。以下是如何使用这两个函数的基本步骤:
保存设置:使用 update_option()
update_option()
函数用于在WordPress数据库中保存或更新一个选项值。它需要两个参数:选项名称和要保存的值。
update_option( $option, $value );
$option
是一个字符串,用于指定选项的名称。$value
是你想要保存的值,可以是字符串、数组、整数等。
以下是一个示例,假设你正在创建一个插件,并想要保存一个名为 my_plugin_settings
的设置:
// 假设这是用户在插件设置表单中提交的数据
$settings = array(
'option1' => 'value1',
'option2' => 'value2',
);
// 使用 update_option() 保存设置
update_option( 'my_plugin_settings', $settings );
检索设置:使用 get_option()
get_option()
函数用于从WordPress数据库中检索一个选项的值。它需要一个参数,即选项名称,如果选项不存在,则可以提供一个默认值。
$value = get_option( $option, $default );
$option
是你想要检索的选项名称。$default
是一个可选参数,如果选项不存在,则返回这个默认值。
以下是如何检索之前保存的 my_plugin_settings
设置:
// 检索 my_plugin_settings 设置
$my_plugin_settings = get_option( 'my_plugin_settings', array() );
// 现在 $my_plugin_settings 包含了之前保存的设置
如果你没有为 get_option()
提供默认值,并且该选项不存在,它将返回 false
。
完整示例
以下是一个简单的插件设置页面示例,它使用 update_option()
和 get_option()
来保存和检索设置:
// 添加菜单项到 WordPress 管理后台
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
);
}
add_action( 'admin_menu', 'my_plugin_menu' );
// 设置页面内容
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' );
在这个示例中,我们创建了一个菜单页面,用户可以在其中输入设置。当用户提交表单时,register_setting()
函数会自动处理 update_option()
调用,因此你不需要在代码中显式调用 update_option()
。settings_fields()
函数生成表单的隐藏字段,用于验证和安全性。