WordPress功能函数add_option()

WordPress功能函数add_option(),添加一个新的选项。

用法:

add_option( string $option, mixed $value = ”, string $deprecated = ”, string|bool $autoload = ‘yes’ )

描述

您不需要序列化值。如果需要对值进行序列化,那么将在将其插入数据库之前对其进行序列化。请记住,资源不能序列化或作为选项添加。

您可以创建没有值的选项,然后稍后更新这些值。现有的选项不会被更新,并且会执行检查以确保你没有添加一个受保护的WordPress选项。注意不要将选项命名为与受保护选项相同的选项。

参数:

$option

(string) (必需) 要添加的选项的名称。预计不会被sql转义。

$value

(mixed) (可选) 选项值。如果是非标量,则必须是可序列化的。预计不会被sql转义。

默认值: ”

$deprecated

(string) (可选) 描述。不惯了。

默认值: ”

$autoload

(string|bool) (可选) 是否在WordPress启动时加载该选项。默认是启用的。由于遗留原因,接受“no”来禁用。

默认值: ‘yes’

返回

(bool)添加该选项时为True,否则为false。

来源:

文件: wp-includes/option.php

function add_option( $option, $value = ”, $deprecated = ”, $autoload = ‘yes’ ) {

global $wpdb;

if ( ! empty( $deprecated ) ) {

_deprecated_argument( __FUNCTION__, ‘2.3.0’ );

}

$option = trim( $option );

if ( empty( $option ) ) {

return false;

}

/*

* Until a proper _deprecated_option() function can be introduced,

* redirect requests to deprecated keys to the new, correct ones.

*/

$deprecated_keys = array(

‘blacklist_keys’ => ‘disallowed_keys’,

‘comment_whitelist’ => ‘comment_previously_approved’,

);

if ( ! wp_installing() &**p;&**p; isset( $deprecated_keys[ $option ] ) ) {

_deprecated_argument(

__FUNCTION__,

‘5.5.0’,

sprintf(

/* translators: 1: Deprecated option key, 2: New option key. */

__( ‘The “1$s” option key has been ren**ed to “2$s”.’ ),

$option,

$deprecated_keys[ $option ]

)

);

return add_option( $deprecated_keys[ $option ], $value, $deprecated, $autoload );

}

wp_protect_special_option( $option );

if ( is_object( $value ) ) {

$value = clone $value;

}

$value = sanitize_option( $option, $value );

// Make sure the option doesn’t already exist.

// We can check the ‘notoptions’ cache before we ask for a DB query.

$notoptions = wp_cache_get( ‘notoptions’, ‘options’ );

if ( ! is_array( $notoptions ) || ! isset( $notoptions[ $option ] ) ) {

/** This filter is documented in wp-includes/option.php */

if ( apply_filters( “default_option_{$option}”, false, $option, false ) !== get_option( $option ) ) {

return false;

}

}

$serialized_value = **ybe_serialize( $value );

$autoload = ( ‘no’ === $autoload || false === $autoload ) ? ‘no’ : ‘yes’;

/**

* Fires before an option is added.

*

* @since 2.9.0

*

* @par** string $option N**e of the option to add.

* @par** mixed $value Value of the option.

*/

do_action( ‘add_option’, $option, $value );

$result = $wpdb->query( $wpdb->prepare( “INSERT INTO `$wpdb->options` (`option_n**e`, `option_value`, `autoload`) VALUES (s, s, s) ON DUPLICATE KEY UPDATE `option_n**e` = VALUES(`option_n**e`), `option_value` = VALUES(`option_value`), `autoload` = VALUES(`autoload`)”, $option, $serialized_value, $autoload ) );

if ( ! $result ) {

return false;

}

if ( ! wp_installing() ) {

if ( ‘yes’ === $autoload ) {

$alloptions = wp_load_alloptions( true );

$alloptions[ $option ] = $serialized_value;

wp_cache_set( ‘alloptions’, $alloptions, ‘options’ );

} else {

wp_cache_set( $option, $serialized_value, ‘options’ );

}

}

// This option exists ***.

$notoptions = wp_cache_get( ‘notoptions’, ‘options’ ); // Yes, again… we need it to be fresh.

if ( is_array( $notoptions ) &**p;&**p; isset( $notoptions[ $option ] ) ) {

unset( $notoptions[ $option ] );

wp_cache_set( ‘notoptions’, $notoptions, ‘options’ );

}

/**

* Fires after a specific option has been added.

*

* The dyn**ic portion of the hook n**e, `$option`, refers to the option n**e.

*

* @since 2.5.0 As “add_option_{$n**e}”

* @since 3.0.0

*

* @par** string $option N**e of the option to add.

* @par** mixed $value Value of the option.

*/

do_action( “add_option_{$option}”, $option, $value );

/**

* Fires after an option has been added.

*

* @since 2.9.0

*

* @par** string $option N**e of the added option.

* @par** mixed $value Value of the option.

*/

do_action( ‘added_option’, $option, $value );

return true;

}
更新日志:

WordPress功能函数add_option() (https://www.wpzt.net/) WordPress开发教程 第1张

用户贡献的笔记

(由Codex – 5年前贡献)

基本的例子:

<?php add_option( ‘myhack_extraction_length’, ‘255’, ”, ‘yes’ ); ?>

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容