在WordPress中,update_option()
和 get_option()
是两个非常常用的函数,用于保存和检索插件或主题的设置。以下是如何使用这两个函数的基本步骤:
1. 使用 update_option()
保存设置
update_option()
函数用于在WordPress数据库中更新一个选项的值。如果选项不存在,它将创建一个新的选项。
函数的基本语法如下:
bool update_option( string $option, mixed $value, string $autoload = 'yes' )
$option
:选项名称(通常是插件或主题的名称加上设置项的名称)。$value
:要保存的值。$autoload
:是否在WordPress启动时自动加载此选项,默认为 'yes'。
以下是一个示例,展示如何在插件设置表单的处理逻辑中使用 update_option()
:
// 检查是否有表单提交,并且当前用户有权限更新选项
if ( isset( $_POST['submit'] ) && current_user_can( 'manage_options' ) ) {
// 获取表单数据
$my_option_value = sanitize_text_field( $_POST['my_option'] );
// 更新数据库中的选项
update_option( 'my_plugin_option', $my_option_value );
// 可以添加一个成功的通知消息
add_settings_error( 'my_plugin_messages', 'my_plugin_message', 'Settings saved.', 'updated' );
}
2. 使用 get_option()
检索设置
get_option()
函数用于从WordPress数据库中检索一个选项的值。
函数的基本语法如下:
mixed get_option( string $option, mixed $default = false )
$option
:要检索的选项名称。$default
:如果选项不存在,则返回的默认值。
以下是一个示例,展示如何在插件中检索之前保存的设置:
// 获取之前保存的选项值
$my_option_value = get_option( 'my_plugin_option', 'default_value' );
// 使用获取的选项值
echo 'The value of my option is: ' . esc_html( $my_option_value );
完整示例
以下是一个简单的插件设置页面示例,它包含表单提交处理和设置值的保存与检索:
// 添加管理菜单
function my_plugin_menu() {
add_options_page( 'My Plugin Settings', 'My Plugin', 'manage_options', 'my-plugin-settings', 'my_plugin_settings_page' );
}
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_options' );
do_settings_sections( 'my-plugin-settings' );
?>
<table class="form-table">
<tr valign="top">
<th scope="row">My Option</th>
<td><input type="text" name="my_option" value="<?php echo esc_attr( get_option( 'my_plugin_option' ) ); ?>" /></td>
</tr>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php
}
// 注册设置
function my_plugin_register_settings() {
register_setting( 'my_plugin_options', 'my_plugin_option' );
}
add_action( 'admin_init', 'my_plugin_register_settings' );
在这个示例中,我们创建了一个设置页面,用户可以在其中输入一个值,该值通过 update_option()
保存到数据库中,并且可以通过 get_option()
在任何地方检索。注意,我们还使用了 settings_fields()
和 register_setting()
函数来确保表单的安全性和正确处理。