add_site_option( string $option, mixed $value )
为当前网络添加新选项。
Adds a new option for the current network.
说明(Description)
另见函数 add_network_option()
参数(Parameters)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
$option | (string) | 必需 | 要添加的选项的名称。应为非SQL转义。 |
$value | (mixed) | 必需 | 期权价值,可以是任何东西。应为非SQL转义。 |
返回(Return)
(bool)如果未添加选项,则为False。如果添加了选项,则为True。源码(Source)
/**
* Add a new site option.
*
* Existing options will not be updated. Note that prior to 3.3 this wasn't the case.
*
* @since 2.8.0
*
* @see add_option()
*
* @global wpdb $wpdb
*
* @param string $option Name of option to add. Expected to not be SQL-escaped.
* @param mixed $value Optional. Option value, can be anything. Expected to not be SQL-escaped.
* @return bool False if option was not added and true if option was added.
*/
function add_site_option( $option, $value ) {
global $wpdb;
wp_protect_special_option( $option );
/**
* Filter the value of a specific site option before it is added.
*
* The dynamic portion of the hook name, `$option`, refers to the option name.
*
* @since 2.9.0 As 'pre_add_site_option_' . $key
* @since 3.0.0
*
* @param mixed $value Value of site option.
*/
$value = apply_filters( 'pre_add_site_option_' . $option, $value );
$notoptions_key = "{$wpdb->siteid}:notoptions";
if ( !is_multisite() ) {
$result = add_option( $option, $value );
} else {
$cache_key = "{$wpdb->siteid}:$option";
// 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_key, 'site-options' );
if ( ! is_array( $notoptions ) || ! isset( $notoptions[$option] ) )
if ( false !== get_site_option( $option ) )
return false;
$value = sanitize_option( $option, $value );
$serialized_value = maybe_serialize( $value );
$result = $wpdb->insert( $wpdb->sitemeta, array('site_id' => $wpdb->siteid, 'meta_key' => $option, 'meta_value' => $serialized_value ) );
if ( ! $result )
return false;
wp_cache_set( $cache_key, $value, 'site-options' );
// This option exists now
$notoptions = wp_cache_get( $notoptions_key, 'site-options' ); // yes, again... we need it to be fresh
if ( is_array( $notoptions ) && isset( $notoptions[$option] ) ) {
unset( $notoptions[$option] );
wp_cache_set( $notoptions_key, $notoptions, 'site-options' );
}
}
if ( $result ) {
/**
* Fires after a specific site option has been successfully added.
*
* The dynamic portion of the hook name, `$option`, refers to the option name.
*
* @since 2.9.0 As "add_site_option_{$key}"
* @since 3.0.0
*
* @param string $option Name of site option.
* @param mixed $value Value of site option.
*/
do_action( "add_site_option_{$option}", $option, $value );
/**
* Fires after a site option has been successfully added.
*
* @since 3.0.0
*
* @param string $option Name of site option.
* @param mixed $value Value of site option.
*/
do_action( "add_site_option", $option, $value );
return true;
}
return false;
}
更新版本 | 源码位置 | 使用 | 被使用 |
---|---|---|---|
4.4.0 | wp-includes/option.php:1171 | 3 | 1 function |
笔记(Notes)
安装选项默认值实例
参数$value列为可选。它不是可选的;它是必需的。