WordPress Option API(数据库储存 API)

WordPress Option API 是提供给开发者的数据库存储机制,通过调用函数,可以快速、安全的把数据存储到数据库里(都在 wp_options 表)。

每个设置的模式是 key – value,利于扩展。Option API 不仅仅给主题和插件开发者用,连 WordPress 的很多设置都存储在这里,比如网站名。

获取设置

获取设置是非常常用的操作,主要使用 get_option() 函数:

1
get_option( $option, $default );

参数:

$option

(字符串)(必须)要获取的设置的键名。

默认值:None

$default

(混合)(可选)当数据库中找不到指定的键值的时候,返回什么数据。

默认值:False

这个函数应该非常常见了,比如获取博客的名字:

1
$blogname = get_option( ‘name‘ );

添加设置

添加设置用 add_option() 函数,用法:

1
add_option( $option, $value, $deprecated, $autoload );

参数:

$option

(字符串)(必须)要添加的设置的键名,不能重复,设置已经存在则不会添加。

默认值:None

$value

(混合)(可选)要储存的值,可以是任何数据类型,甚至是 Object.

默认值:空字符串

$deprecated

(字符串)(可选)历史遗留变量,现在已经无用,不设置或者留空字符串即可。

默认值:空字符串

$autoload

(字符串)(可选)是否将该设置加入缓存,填写 yes 或者 no.

默认值:yes

例子:

1
2
3
4
5
6
add_option( ‘example_option‘, ‘保存一段话‘ );//保存字符串
add_option( ‘example_option2‘, true );//保存布尔值
add_option( ‘example_option3‘, array( ‘a‘, ‘b‘, ‘c‘, ‘d‘, 5, 6, true, false ) );//保存数组
add_option( ‘example_option4‘, 12 );//保存整数
add_option( ‘example_option5‘, 4.4123 );//保存浮点数
add_option( ‘example_option6‘, new example_obj );//保存对象(Object)

注意,这个函数有一个重要的特性,就是如果指定键名的设置已经存在,就不会继续添加。

更新设置

更新设置用 update_option() 函数,它不管设置是否存在,都会添加或者更新。

参数:

$option

(字符串)(必须)要更新的设置的键名。

默认值:None

$newvalue

(混合)(必须)要更新的值,可以是任何数据类型,甚至是 Object.

默认值:None

例子:

1
2
3
4
5
6
update_option( ‘example_option‘, ‘更新一段话2‘ );//更新字符串
update_option( ‘example_option2‘, false );//更新布尔值
update_option( ‘example_option3‘, array( ‘d‘, ‘c‘, ‘b‘, ‘a‘ ) );//更新数组
update_option( ‘example_option4‘, -11 );//更新整数
update_option( ‘example_option5‘, 1.3123 );//更新浮点数
update_option( ‘example_option6‘, new example_obj2 );//更新对象(Object)

删除设置

删除一个设置用 delete_option() 函数即可,直接指定键值就能删除。

参数:

$option

(字符串)(必须)要删除的设置的键值。

默认值:None

例子:

1
2
3
4
5
6
delete_option( ‘example_option‘ );
delete_option( ‘example_option2‘ );
delete_option( ‘example_option3‘ );
delete_option( ‘example_option4‘ );
delete_option( ‘example_option5‘ );
delete_option( ‘example_option6‘ );

小结

好好利用 Option API 可以轻松、安全的将数据保存到数据,省去麻烦的 Sql 语句。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。