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. Java性能调优笔记

    Java性能调优笔记 调优步骤:衡量系统现状.设定调优目标.寻找性能瓶颈.性能调优.衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈).性能调优结束. 寻找性能瓶颈 性能瓶颈的表象:资源消耗过多. ...

  2. [ubuntu]deb软件源

    虽然ubuntu的中国服务器的速度已经非常不错,但是难免,会有网络不畅的情形,所以修改软件源地址是一个基础的知识点. 修改ubuntu的软件源的方式有多种,一直是通过ubuntu软件中心提供的UI,还 ...

  3. AOJ 740 求和

      链接:http://icpc.ahu.edu.cn/OJ/Problem.aspx?id=740   Description 对于正整数n,k,我们定义这样一个函数f,它满足如下规律f(n,k=1 ...

  4. js立即执行函数: (function ( ){...})( ) 与 (function ( ){...}( )) 有区别?

    没有区别. 你需要明白 IIFE 的原理,我简单说一下: function foo() {...} // 这是定义,Declaration:定义只是让解释器知道其存在,但是不会运行. foo(); / ...

  5. 给vs2010安装上cocos2d-x的模版

    开发环境:OS(WINDOWS 8.1 X64 企业版) cocos2d-x 2.2.1  vs2010 想给vs安装上cocos的模版,执行InstallWizardForVS2010.js,老是提 ...

  6. QTP和WinRunner区别

    QTP,全称为Quick Test Professional,它与WinRunner同为MI公司开发的功能强大的功能测试工具.从时间上来看,WinRunner在1995年便已经推出,远早于QTP,而Q ...

  7. 常用的adb命令

    在平时的工作中,会经常用到adb命令,在这里稍微整理了一下. 一.概要 1.什么是adb? adb全称为Android Debug Bridge,就是起到调试桥的作用.顾名思义,adb就是一个debu ...

  8. sublime修改字体大小

    /Packages/Theme\ -\ Default/Default.sublime-theme { "class": "label_control", , ...

  9. 022医疗项目-模块二:药品目录的导入导出-对XSSF导出excel类进行封装

    资源全部来源于传智播客. 好的架构师写的程序,就算给刚入门的新手看,新手一看就知道怎么去用.所以我们要对XSSF导出excel类进行封装.这是架构师的工作,但我们也要知道. 我们写一个封装类: 这个类 ...

  10. 华为访问列表traffic-policy案例

    1,最近某公司有个需求 2,配置为重点--在于思路 需求:192.168.1 3 5 8网段不能访问2.x网段 仅允许财务2.x访问1.253打印机. acl name permit_printer ...