在WordPress中,update_option()
和 get_option()
是两个非常常用的函数,它们用于存储和检索插件或主题的设置。以下是使用这两个函数的基本步骤:
存储插件设置(使用 update_option()
)
当你需要将插件的设置保存到WordPress数据库中时,可以使用 update_option()
函数。这个函数接受两个参数:选项名称和要保存的值。
function save_plugin_settings($settings) {
// update_option() 函数接受两个参数:
// 1. 选项名称(通常是插件或主题的名称加上设置名称)
// 2. 要保存的值(可以是字符串、数组或任何可以序列化的数据类型)
update_option('plugin_settings', $settings);
}
在上面的例子中,plugin_settings
是存储在数据库中的选项名称,而 $settings
是一个包含插件设置数据的变量,它可以是数组或其他数据类型。
检索插件设置(使用 get_option()
)
当你需要从数据库中检索插件的设置时,可以使用 get_option()
函数。这个函数接受一个参数:选项名称。
function get_plugin_settings() {
// get_option() 函数接受一个参数:
// 选项名称(与update_option()中使用的相同)
$settings = get_option('plugin_settings', array());
// 返回获取到的设置,如果没有找到则返回一个空数组
return $settings;
}
在上面的例子中,get_option()
尝试获取名为 plugin_settings
的选项。如果该选项不存在,则返回一个空数组(这是第二个参数的默认值)。
示例:在插件中使用这两个函数
以下是如何在一个简单的插件中结合使用这两个函数的示例:
// 在插件激活时设置默认值
function plugin_activation() {
$default_settings = array(
'option1' => 'value1',
'option2' => 'value2',
);
update_option('plugin_settings', $default_settings);
}
register_activation_hook(__FILE__, 'plugin_activation');
// 保存插件设置
function save_plugin_settings() {
if (isset($_POST['save_settings'])) {
$settings = array(
'option1' => sanitize_text_field($_POST['option1']),
'option2' => sanitize_text_field($_POST['option2']),
);
update_option('plugin_settings', $settings);
}
}
// 添加一个管理菜单项
function plugin_menu() {
add_menu_page(
'Plugin Settings', // 页面标题
'Plugin Settings', // 菜单标题
'manage_options', // 能访问这个页面的最低权限
'plugin-settings', // 页面 slug
'plugin_settings_page' // 调用函数来显示页面内容
);
}
add_action('admin_menu', 'plugin_menu');
// 显示插件设置页面
function plugin_settings_page() {
?>
<div class="wrap">
<h1>Plugin Settings</h1>
<form method="post" action="">
<table class="form-table">
<tr valign="top">
<th scope="row">Option 1</th>
<td><input type="text" name="option1" value="<?php echo esc_attr(get_option('option1')); ?>" /></td>
</tr>
<tr valign="top">
<th scope="row">Option 2</th>
<td><input type="text" name="option2" value="<?php echo esc_attr(get_option('option2')); ?>" /></td>
</tr>
</table>
<?php submit_button('Save Settings'); ?>
</form>
</div>
<?php
save_plugin_settings(); // 在表单提交时保存设置
}
在这个示例中,当用户访问“Plugin Settings”页面并提交表单时,save_plugin_settings()
函数会被调用,它会更新存储在数据库中的设置。当页面加载时,它会使用 get_option()
来显示当前的设置值。