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. 如何在nopcommerce3.3注册页面添加密码强度检查仪?

    我刚刚完成了nopCommerce注册页面的密码强度检查仪,因为我觉得在电子商务交易平台,安全问题是非常重要的.在注册页面有必要添加一个密码强度检测仪,以便通知用户他们的密码是否足够强大.今天,大多数 ...

  2. J2EE笔记3

    7. MVC 设计模式. 6. 和属性相关的方法: 1). 方法 void setAttribute(String name, Object o): 设置属性 Object getAttribute( ...

  3. 2014 Super Training #4 E Paint the Grid Reloaded --联通块缩点+BFS

    原题: ZOJ 3781 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3781 题意: 给一个n*m的X,O构成的格子,对 ...

  4. MySQL数据库学习笔记(一)----MySQL 5.6.21的安装和配置(setup版)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. MongoDB学习(一)简介

    本篇主要简单介绍一下MongoDB数据库. 一.简介 mongoDB是一个开源的,基于分布式的,面向文档存储的非关系型数据库.是非关系型数据库当中功能最丰富.最像关系数据库的. mongoDB由C++ ...

  6. 解决Gradle DSL method not found: ‘android()’

    最近导入as的项目出了这样的问题 这个问题困扰了我很长时间,好吧,搜了半天全都是runProguard的,最后在stackoverflow上搜到解决办法了: http://stackoverflow. ...

  7. Nuget如何管理本地的包

    1.在nuget中创建一个本地的程序包源

  8. 命令行参数(argc, argv)

    每个C语言程序都必须有一个称为main()的函数,作为程序启动的起点.当执行程序时,命令行参数(command-line argument)(由shell逐一解析)通过两个入参提供给main()函数. ...

  9. 解决memcached不能远程访问的问题

    之前安装好memcached之后,一直是在本机连接使用的,没有出现问题,今天我改用从另一台机器连接到memcached时,却怎么也连接不上.后来一直想大概是防火墙的问题,关闭了防火墙后问题依然存在. ...

  10. win7(X64)系统下cuda7.5和VS2013的配置

    &1 安装 cuda7.5文件:链接:http://pan.baidu.com/s/1bU2zIQ 密码:nvyw &2 环境变量 注意:CUDA_PATH是安装好cuda7.5之后会 ...