5ucms论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 9720|回复: 3
打印 上一主题 下一主题

[钩子/函数] get_option() add_option() update_option() delete_option()函数 站点属性

[复制链接]

670

主题

785

帖子

8278

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8278
跳转到指定楼层
楼主
发表于 2021-5-29 08:36:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
get_option()函数,实际上我们在整合后台功能的时候经常会用到的一个函数,主要用来从 WordPress 博客数据库wp_options表中取得我们想要的字段内容的一个函数。

语法结构

  1. <?php echo get_option( $option, $default ); ?>
复制代码

参数:

$option (string) (必选)获取选项的名称,只允许下划线分隔的小写字母组合,如show或者show_id形式,默认值none。
$default(mixed) (可选)如果不存在并且设置了默认值的话就返回默认值,否则返回默认False

部分配置属性列表(配置属性表大全)

admin_email – 网站的管理员邮件地址
blogname – 网站的站点名称
blogdescription – 网站的站点副标题
blog_charset – 站点的字符编码集
date_format – 默认的时间格式
default_category – 默认的文章分类
template – 当前设置的主题名称
posts_per_page – 单页显示的最大文章数
  1. //如果wp_option表中没有wpxk这条记录,就默认返回“WordPress” ?>
  2. <?php echo get_option("wpxk", "WordPress");

  3. //将博客名称显示在<h1>标签中
  4. <h1><?php echo get_option( 'blogname' ); ?></h1>

  5. //显示站点正在使用的编码(比如:UTF-8)
  6. <p>Character set: <?php echo get_option( 'blog_charset' ); ?> </p>

  7. 博客管理员的邮件地址,并将它存在变量中。
  8. <?php $admin_email = get_option( 'admin_email' ); ?>
复制代码
回复

使用道具 举报

670

主题

785

帖子

8278

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8278
沙发
 楼主| 发表于 2021-5-29 08:38:29 | 只看该作者
add_option()函数是一种向wp_options数据表中添加有名称的选项/值方法。如果所需选项已存在,add_option()函数不添加内容。选项被保存后,可通过get_option()来获取选项,通过update_option()来修改选项,还可以通过delete_option()删除该选项。

语法结构

  1. <?php add_option( $option, $value, $deprecated, $autoload ); ?>
复制代码



参数

$name(字符串)(必需)需要添加的选项名称。必须用小写字母并且用_隔开单词,参数值会被存入数据库,默认值:None

$value(字符串)(可选)当前选项名称的值。限制在2到32个字节内,默认值:Empty

$deprecated(字符串)(可选)不推荐使用,默认值:Empty

$autoload(字符串)(可选)当前选项是否需要被wp_load_alloptions函数自动加载(加载每个页面时将选项放在对象缓存中)?有效值:yes或no。


比如说
  1. add_option(‘xk_des’,’xuxiaoke’)
复制代码
就是添加一个记录,其中option_name为xk_des,option_value为xuxiaoke,添加后,你可以用get_option(‘xk_des’)来获取该option_value也就是xuxiaoke。

其实,在实际应用中,update_option()也同样起到add_option()函数的添加作用。所以,一般情况下,可以用update_option()函数来替代add_option()函数。
回复 支持 反对

使用道具 举报

670

主题

785

帖子

8278

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8278
板凳
 楼主| 发表于 2021-5-29 08:41:17 | 只看该作者
方法介绍
使用update_option()方法更新一对配置属性值到数据库。$option的值需要在插入到数据库之前用$wpdb->prepare方法来进行转义。这个值必须正确的处理。

这个方法可以用来代替add_option,尽管它确实没那么灵活。update_option会去检查这个配置属性是否存在。如果不存在,会使用add_option('option_name','option_value')来进行添加。除非你想用add_option来配置一些特殊参数,不然就用update_option则是个双全的添加与更新的好选择。

用法
  1. <?php update_option( $option, $new_value, $autoload ); ?>
复制代码


参数
$option
(string) (required) 要更新的属性值。不得超过64个字符。有一系列的默认配置属性可以在这看到Option Reference
默认: None

$newvalue
(mixed) (required) 要更新的新值。这个值可以是integer、string、array、object。
默认: None

$autoload
(mixed) (optional) 是否允许Wordpress启动的时候去加载这个属性。对于已经存在的配置属性,这个参数只能通过update_option()方法来更新。设置为true来开启这个功能,false来关闭这个功能。而对于不存在的配置属性,默认是yes。
默认: null

返回值
(boolean)
返回true表示更新成功,false表示更新失败。

例子
更新核心配置属性
设置默认评论状态为closed

  1. update_option( 'default_comment_status', 'closed' );
复制代码


这个属性通常在设置>评论管理节目来设置。查看Option Reference来看全部核心配置属性。

更新自定义配置属性
同样也可以创建自己的自定义配置属性。比如我们要更新myhack_extraction_length属性为255,那就这么设置:

  1. update_option( 'myhack_extraction_length', 255 );
复制代码


这样会在属性不存在的情况下新增这个配置属性。然而,如果你不想这个属性自动加载,那就必须使用add_option()来操作。这个例子呢,我们会在它存在的时候就更新,不存在呢,就用add_option()来进行,并设置$autoload参数设置为no。

  1. <?php

  2. $option_name = 'myhack_extraction_length' ;
  3. $new_value = '255' ;

  4. if ( get_option( $option_name ) !== false ) {

  5.     // The option already exists, so we just update it.
  6.     update_option( $option_name, $new_value );

  7. } else {

  8.     // The option hasn't been added yet. We'll add it with $autoload set to 'no'.
  9.     $deprecated = null;
  10.     $autoload = 'no';
  11.     add_option( $option_name, $new_value, $deprecated, $autoload ); //这里变成了4个参数,就有点不大理解了,待更新。。。
  12. }

  13. ?>
复制代码


源文件
update_option() 源文件 wp-includes/option.php.
回复 支持 反对

使用道具 举报

670

主题

785

帖子

8278

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8278
地板
 楼主| 发表于 2021-5-29 08:48:57 | 只看该作者
delete_option()函数是从wp_options据库表中删除命名选项/值的方法。

语法结构

  1. <?php delete_option( $option ); ?>
复制代码
参数
$option(字符串)(必填)要删除的选项的名称。默认值:none

实例

从MySQL数据库中的wp_options数据表中删除“my_option”字段。

<?php delete_option('my_option'); ?>
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5ucms.com

GMT+8, 2024-6-23 10:51 , Processed in 0.062500 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表