add_site_option( string $option, mixed $value ): bool

Adds a new option for the current network.

Description

Existing options will not be updated. Note that prior to 3.3 this wasn’t the case.

See also

Parameters

$optionstringrequired
Name of the option to add. Expected to not be SQL-escaped.
$valuemixedrequired
Option value, can be anything. Expected to not be SQL-escaped.

Return

bool True if the option was added, false otherwise.

More Information

This function essentially the same as add_option() but works network wide when using WP Multisite.

The only major difference is that on multisite site-wide options will not autoload and on a single site the option will autoload. Unlike when using add_option() on a single site, the feature cannot be overridden.

Source

function add_site_option( $option, $value ) {
	return add_network_option( null, $option, $value );
}

Changelog

VersionDescription
4.4.0Modified into wrapper for add_network_option()
2.8.0Introduced.

User Contributed Notes

  1. Skip to note 4 content

    Install the option defaults

       
     	if ( 1 == $wpmu ) {
             if ( ! get_site_option( 'wporg_lead_options' ) ) {
                 add_site_option( 'wporg_lead_options', $wporg_lead_options_defaults, '', 'yes' );
             }
    	} else {
             if ( ! get_option( 'wporg_lead_options' ) ) {
                 add_option( 'wporg_lead_options', $wporg_lead_options_defaults, '', 'yes' );
             }
    	}
  2. Skip to note 5 content

    Examples

    Default usage:

    add_site_option( 'my_option', 'my_value' );

    Behavior if the option already exists:

    echo get_site_option( 'i_exist_already' );
    
    // Output: 'some_value'
    
    
    if ( add_site_option( 'i_exist_already', 'new_value' ) ) {
       echo get_site_option( 'i_exist_already' );
    } else {
       echo __( 'Already exists', 'textdomain' );
    }

You must log in before being able to contribute a note or feedback.