Definition:
function get_blog_option( $blog_id, $setting, $default = false ) {}
Retrieve option value based on setting name and blog_id.
If the option does not exist or does not have a value, then the return value will be false. This is useful to check whether you need to install an option and is commonly used during installation of plugin options and to test whether upgrading is required.
Parameters
- int $blog_id: Optional. Blog ID, can be null to refer to the current blog.
- string $setting: Name of option to retrieve. Should already be SQL-escaped.
- string $default: (optional) Default value returned if option not found.
Return values
returns:Value set for the option.
Defined filters
- blog_option_$setting
apply_filters( 'blog_option_' . $setting, $value, $blog_id )
Source code
function get_blog_option( $blog_id, $setting, $default = false ) {
global $wpdb;
if ( null === $blog_id )
$blog_id = $wpdb->blogid;
$key = $blog_id . '-' . $setting . '-blog_option';
$value = wp_cache_get( $key, 'site-options' );
if ( $value == null ) {
if ( $blog_id == $wpdb->blogid ) {
$value = get_option( $setting, $default );
$notoptions = wp_cache_get( 'notoptions', 'options' );
if ( isset( $notoptions[$setting] ) ) {
wp_cache_set( $key, 'noop', 'site-options' );
$value = $default;
} elseif ( $value == false ) {
wp_cache_set( $key, 'falsevalue', 'site-options' );
} else {
wp_cache_set( $key, $value, 'site-options' );
}
return apply_filters( 'blog_option_' . $setting, $value, $blog_id );
} else {
$blog_prefix = $wpdb->get_blog_prefix( $blog_id );
$row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$blog_prefix}options WHERE option_name = %s", $setting ) );
if ( is_object( $row ) ) { // Has to be get_row instead of get_var because of funkiness with 0, false, null values
$value = $row->option_value;
if ( $value == false )
wp_cache_set( $key, 'falsevalue', 'site-options' );
else
wp_cache_set( $key, $value, 'site-options' );
} else { // option does not exist, so we must cache its non-existence
wp_cache_set( $key, 'noop', 'site-options' );
$value = $default;
}
}
} elseif ( $value == 'noop' ) {
1214

February 12, 2011 


No comments yet... Be the first to leave a reply!