在WordPress中,update_option()
和 get_option()
是两个非常常用的函数,它们用于处理插件或主题中的选项数据。以下是如何使用这两个函数的基本指南:
1. get_option()
get_option()
函数用于从WordPress数据库中检索一个选项的值。
基本语法:
mixed get_option( string $option, mixed $default = false )
$option
: 选项名称(字符串)。$default
: 如果选项不存在,则返回的默认值。
示例:
// 假设我们想获取名为 'my_plugin_option' 的选项值
$my_option_value = get_option('my_plugin_option', '默认值');
如果选项存在,它的值将被返回;如果不存在,将返回 '默认值'。
2. update_option()
update_option()
函数用于更新WordPress数据库中的选项值。
基本语法:
bool update_option( string $option, mixed $value, string|bool $autoload = 'yes' )
$option
: 选项名称(字符串)。$value
: 要更新的选项值。$autoload
: 是否在WordPress启动时自动加载此选项。默认为 'yes'。
示例:
// 假设我们想更新名为 'my_plugin_option' 的选项值
update_option('my_plugin_option', '新值');
这将把 'my_plugin_option' 的值更新为 '新值'。
完整示例
以下是一个简单的示例,演示如何在WordPress插件中使用这两个函数:
<?php
/*
Plugin Name: My Plugin Options Example
Description: Example of how to use get_option() and update_option() in a WordPress plugin.
Version: 1.0
Author: Your Name
*/
// 添加一个设置页面链接到插件列表
function my_plugin_add_settings_link($links) {
$settings_link = '<a href="options-general.php?page=my_plugin_settings">Settings</a>';
array_push($links, $settings_link);
return $links;
}
$filter_name = "plugin_action_links_" . plugin_basename(__FILE__);
add_filter($filter_name, 'my_plugin_add_settings_link');
// 注册设置页面
function my_plugin_register_settings() {
add_options_page('My Plugin Settings', 'My Plugin', 'manage_options', 'my_plugin_settings', 'my_plugin_settings_page');
}
add_action('admin_menu', 'my_plugin_register_settings');
// 输出设置页面
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'); ?>
<?php do_settings_sections('my_plugin_settings'); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">Option Value</th>
<td><input type="text" name="my_plugin_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_fields() {
register_setting('my_plugin_options', 'my_plugin_option');
}
add_action('admin_init', 'my_plugin_register_settings_fields');
在这个示例中,我们创建了一个简单的插件,它添加了一个设置页面,允许用户更新名为 my_plugin_option
的选项值。我们使用 get_option()
来显示当前值,并使用 update_option()
在用户提交表单时更新值。