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

Adds a new option for the current network.


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

See also


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


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.


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


4.4.0Modified into wrapper for add_network_option()

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


    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.