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 语句。

WordPress Option API(数据库储存 API)的更多相关文章

  1. Atitit.一个cms有多少少扩展点,多少api wordpress  cms有多少api。。扩展点

    Atitit.一个cms有多少少扩展点,多少api wordpress  cms有多少api. . 扩展点 1. Api分类 WordPress APIs 1 1.1. 1 函数分类 2 1.2. 函 ...

  2. 数据库操作API 或万能的双下划线

    数据库操作API: 类型 描述 exact 精确匹配: polls.get_object(id__exact=14). iexact 忽略大小写的精确匹配: polls.objects.filter( ...

  3. Atitit.跨语言数据库db  api兼容性 jdbc odbc ado oledb 增强方案

    Atitit.跨语言数据库db  api兼容性 jdbc odbc ado oledb 增强方案 1. 跨语言db api兼容性..1 2. 目前访问数据库的接口很多.比较常用的jdbc odbc 以 ...

  4. java数据库 JDBC操作MySQL数据库常用API 部门表和员工表 创建表 添加数据 查询数据

    package com.swift.department; import java.sql.Connection; import java.sql.PreparedStatement; import ...

  5. 应用程序员眼中的数据库管理系统:API+数据库语言

    应用程序员眼中的数据库管理系统:API+数据库语言 sqlite3_open_v2 https://www.cnblogs.com/cchust/p/5121559.html

  6. 关于Django中的数据库操作API之distinct去重的一个误传

    转载自http://www.360doc.com/content/18/0731/18/58287567_774731201.shtml django提供的数据库操作API中的distinct()函数 ...

  7. 用API网关把API管起来

    最开始只是想找个API网关防止API被恶意请求,找了一圈发现基于Nginx的OpenResty(Lua语言)扩展模块Orange挺好(也找了Kong,但是感觉复杂了点没用),还偷懒用Vagrant结合 ...

  8. lumen 构建api(dingo api)

    什么是 API API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力, ...

  9. ASP.NET Core Web API 开发-RESTful API实现

    ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...

随机推荐

  1. tika提取pdf信息异常

    org.apache.tika.sax.WriteOutContentHandler$WriteLimitReachedException: Your document contained more ...

  2. 算法实践——Twitter算法面试题(积水问题)的线性时间解法

    问题描述:在下图里我们有不同高度的挡板.这个图片由一个整数数组所代表,数组中每个数是墙的高度.下图可以表示为数组(2.5.1.2.3.4.7.2).假如开始下雨了,那么挡板之间的水坑能够装多少水(水足 ...

  3. hdu1042 N!

    /* N! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Subm ...

  4. Chrome浏览器与常用插件推荐

    Chrome浏览器与常用插件推荐 官方chrome下载:http://www.google.cn/chrome/ 提示:需要FQ才能安装. 1,AdBlock 谷歌屏蔽广告: https://chro ...

  5. 在mac os下的Apache服务器的cgi中运行python

    我是搬运工.. Running Python Programs on the Mac OS X Apache Web Server The Mac OS X operating system incl ...

  6. NYOJ-301递推求值

    递推求值 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 给你一个递推公式: f(x)=a*f(x-2)+b*f(x-1)+c 并给你f(1),f(2)的值,请求出f ...

  7. AC日记——机器翻译 洛谷 P1540

    题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换.对于每个英文单词,软件会先 ...

  8. 安装StarUML 及使用时序图(Sequence Diagram)和用例图(use case diagram)

    时序图 用例图

  9. css3爆炸效果更换图片轮播图

    思路:给一个div设置一个背景图片1.jpg,然后在这个div上面用两个for循环动态的创建一个列数为C行数为R数量的span,并给这些span设置宽高.定位并设置背景图片0.jpg,然后设置每个sp ...

  10. mysql客户端授权后连接失败问题

    在本地(192.168.1.152)部署好mysql环境,授权远程客户机192.168.1.%连接本机的mysql,在iptables防火墙也已开通3306端口.如下:mysql> select ...