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. [转]10个学习Android开发的网站推荐

    本文转自:http://blog.csdn.net/i_lovefish/article/details/43950893 1. Android Developers 作为一个Android开发者,官 ...

  2. perl学习笔记

    一.正则表达式 匹配一个文件中的某个单词,并打印出来 #!/usr/bin/perl use strict; use warnings; ; open(FILE, "< temp.pl ...

  3. 【温故而知新-Javascript】窗口效果 (全屏显示窗口、定时关闭窗口)

    1.全屏显示窗口 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  4. 【问题&解决】sql2012安装时卡在正在启动操作系统功能"NetFx3"上不动的解决办法

    安装完windows8 后开始安装sql2012,安装过程中停在“正在启动操作系统功能"NetFx3"”不动了,很是着急,于是上网查了一下资料,原来NetFx3指的是Framewo ...

  5. linux命令学习-复制(cp,scp)

    linux为我们提供了两个用于文件的copy的命令,一个是cp,一个是scp.但是它们略有不同: cp主要用于在同一台电脑上,在不同的目录之间来回copy文件,scp主要是在不同的linux系统之间来 ...

  6. java9-9 匿名内部类

    1. 匿名内部类 就是内部类的简化写法. 前提:存在一个类或者接口 这里的类可以是具体类也可以是抽象类. 格式: new 类名或者接口名(){ 重写方法; } new Xxx()是创建了一个对象,而抽 ...

  7. js的nextSibling,属性兼容IE和FF等浏览器

    Firefox中 空白字符,比如回车,空格等也算作一个Node 就是firstChild,nextsbiling这两个.下面给出函数吧.还是代码比较说明问题代码都是网上来的.不过要注意的是,getNe ...

  8. Windows Phone 简介

    中文官网 https://dev.windowsphone.com/zh-cn Windows Phone SDK 7.1 http://www.microsoft.com/zh-cn/downloa ...

  9. C语言 百炼成钢5

    //题目13:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 //本身.例如:153是一个“水仙花数”,因为153 = 1的三次方+5的三次方+3的三次方. #de ...

  10. maven中的 dependencies 和 dependencyManagement 的区别

    今天我在配置 sellercenter 的接口测试环境的时候,发现一些依赖的写法不太一致: 比如有的依赖的<scope>是写在子项目中的 <dependencies> 下的&l ...