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