Make WordPress Core


Ignore:
Timestamp:
02/14/2010 06:17:42 AM (17 years ago)
Author:
nacin
Message:

Whitespace, phpdoc, standard variable names, better return values for options and transients APIs. See #10788

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/functions.php

    r13102 r13139  
    312312 * @package WordPress
    313313 * @subpackage Option
    314  * @uses apply_filters() Calls 'pre_option_$optionname' false to allow
     314 * @uses apply_filters() Calls 'pre_option_$option' false to allow
    315315 *              overwriting the option value in a plugin.
    316  * @uses apply_filters() Calls 'option_$optionname' with the option name value.
    317  *
    318  * @param string $setting Name of option to retrieve. Should already be SQL-escaped
     316 * @uses apply_filters() Calls 'option_$option' with the option value.
     317 *
     318 * @param string $option Name of option to retrieve. Should already be SQL-escaped
    319319 * @return mixed Value set for the option.
    320320 */
    321 function get_option( $setting, $default = false ) {
     321function get_option( $option, $default = false ) {
    322322        global $wpdb;
    323323
    324324        // Allow plugins to short-circuit options.
    325         $pre = apply_filters( 'pre_option_' . $setting, false );
     325        $pre = apply_filters( 'pre_option_' . $option, false );
    326326        if ( false !== $pre )
    327327                return $pre;
     
    332332        } else {
    333333                $notoptions = wp_cache_get( 'notoptions', 'options' );
    334                 if ( isset( $notoptions[$setting] ) )
     334                if ( isset( $notoptions[$option] ) )
    335335                        return $default;
    336336        }
     
    340340        }
    341341
    342         if ( isset( $alloptions[$setting] ) ) {
    343                 $value = $alloptions[$setting];
     342        if ( isset( $alloptions[$option] ) ) {
     343                $value = $alloptions[$option];
    344344        } else {
    345                 $value = wp_cache_get( $setting, 'options' );
     345                $value = wp_cache_get( $option, 'options' );
    346346
    347347                if ( false === $value ) {
    348348                        if ( defined( 'WP_INSTALLING' ) )
    349349                                $suppress = $wpdb->suppress_errors();
    350                         // expected_slashed ($setting)
    351                         $row = $wpdb->get_row( "SELECT option_value FROM $wpdb->options WHERE option_name = '$setting' LIMIT 1" );
     350                        // expected_slashed ($option)
     351                        $row = $wpdb->get_row( "SELECT option_value FROM $wpdb->options WHERE option_name = '$option' LIMIT 1" );
    352352                        if ( defined( 'WP_INSTALLING' ) )
    353                                 $wpdb->suppress_errors($suppress);
     353                                $wpdb->suppress_errors( $suppress );
    354354
    355355                        if ( is_object( $row) ) { // Has to be get_row instead of get_var because of funkiness with 0, false, null values
    356356                                $value = $row->option_value;
    357                                 wp_cache_add( $setting, $value, 'options' );
     357                                wp_cache_add( $option, $value, 'options' );
    358358                        } else { // option does not exist, so we must cache its non-existence
    359                                 $notoptions[$setting] = true;
     359                                $notoptions[$option] = true;
    360360                                wp_cache_set( 'notoptions', $notoptions, 'options' );
    361361                                return $default;
     
    365365
    366366        // If home is not set use siteurl.
    367         if ( 'home' == $setting && '' == $value )
     367        if ( 'home' == $option && '' == $value )
    368368                return get_option( 'siteurl' );
    369369
    370         if ( in_array( $setting, array('siteurl', 'home', 'category_base', 'tag_base') ) )
     370        if ( in_array( $option, array('siteurl', 'home', 'category_base', 'tag_base') ) )
    371371                $value = untrailingslashit( $value );
    372372
    373         return apply_filters( 'option_' . $setting, maybe_unserialize( $value ) );
     373        return apply_filters( 'option_' . $option, maybe_unserialize( $value ) );
    374374}
    375375
     
    482482 *
    483483 * Before the option is updated, then the filter named
    484  * 'pre_update_option_$option_name', with the $option_name as the $option_name
     484 * 'pre_update_option_$option', with the $option as the $option
    485485 * parameter value, will be called. The hook should accept two parameters, the
    486486 * first is the new value and the second is the old value.  Whatever is
    487487 * returned will be used as the new value.
    488488 *
    489  * After the value has been updated the action named 'update_option_$option_name'
     489 * After the value has been updated the action named 'update_option_$option'
    490490 * will be called.  This action receives two parameters the first being the old
    491491 * value and the second the new value.
     
    495495 * @subpackage Option
    496496 *
    497  * @param string $option_name Option name. Expected to not be SQL-escaped
     497 * @param string $option Option name. Expected to not be SQL-escaped
    498498 * @param mixed $newvalue Option value.
    499499 * @return bool False if value was not updated and true if value was updated.
    500500 */
    501 function update_option( $option_name, $newvalue ) {
     501function update_option( $option, $newvalue ) {
    502502        global $wpdb;
    503503
    504         wp_protect_special_option( $option_name );
    505 
    506         $safe_option_name = esc_sql( $option_name );
    507         $newvalue = sanitize_option( $option_name, $newvalue );
     504        wp_protect_special_option( $option );
     505
     506        $safe_option_name = esc_sql( $option );
     507        $newvalue = sanitize_option( $option, $newvalue );
    508508
    509509        $oldvalue = get_option( $safe_option_name );
    510510
    511         $newvalue = apply_filters( 'pre_update_option_' . $option_name, $newvalue, $oldvalue );
     511        $newvalue = apply_filters( 'pre_update_option_' . $option, $newvalue, $oldvalue );
    512512
    513513        // If the new and old values are the same, no need to update.
     
    515515                return false;
    516516
    517         if ( false === $oldvalue ) {
    518                 add_option( $option_name, $newvalue );
    519                 return true;
    520         }
     517        if ( false === $oldvalue )
     518                return add_option( $option, $newvalue );
    521519
    522520        $notoptions = wp_cache_get( 'notoptions', 'options' );
    523         if ( is_array( $notoptions ) && isset( $notoptions[$option_name] ) ) {
    524                 unset( $notoptions[$option_name] );
     521        if ( is_array( $notoptions ) && isset( $notoptions[$option] ) ) {
     522                unset( $notoptions[$option] );
    525523                wp_cache_set( 'notoptions', $notoptions, 'options' );
    526524        }
     
    529527        $newvalue = maybe_serialize( $newvalue );
    530528
    531         do_action( 'update_option', $option_name, $oldvalue, $newvalue );
     529        do_action( 'update_option', $option, $oldvalue, $newvalue );
    532530        if ( ! defined( 'WP_INSTALLING' ) ) {
    533531                $alloptions = wp_load_alloptions();
    534                 if ( isset( $alloptions[$option_name] ) ) {
    535                         $alloptions[$option_name] = $newvalue;
     532                if ( isset( $alloptions[$option] ) ) {
     533                        $alloptions[$option] = $newvalue;
    536534                        wp_cache_set( 'alloptions', $alloptions, 'options' );
    537535                } else {
    538                         wp_cache_set( $option_name, $newvalue, 'options' );
     536                        wp_cache_set( $option, $newvalue, 'options' );
    539537                }
    540538        }
    541539
    542         $wpdb->update($wpdb->options, array('option_value' => $newvalue), array('option_name' => $option_name) );
    543 
    544         if ( $wpdb->rows_affected == 1 ) {
    545                 do_action( "update_option_{$option_name}", $oldvalue, $_newvalue );
    546                 do_action( 'updated_option', $option_name, $oldvalue, $_newvalue );
     540        $result = $wpdb->update( $wpdb->options, array( 'option_value' => $newvalue ), array( 'option_name' => $option ) );
     541
     542        if ( $result ) {
     543                do_action( "update_option_{$option}", $oldvalue, $_newvalue );
     544                do_action( 'updated_option', $option, $oldvalue, $_newvalue );
    547545                return true;
    548546        }
     
    563561 * that were already added.
    564562 *
    565  * The filter named 'add_option_$optionname', with the $optionname being
     563 * The filter named 'add_option_$option', with the $optionname being
    566564 * replaced with the option's name, will be called. The hook should accept two
    567565 * parameters, the first is the option name, and the second is the value.
     
    572570 * @link http://alex.vort-x.net/blog/ Thanks Alex Stapleton
    573571 *
    574  * @param string $name Option name to add. Expects to NOT be SQL escaped.
     572 * @param string $option Name of option to add. Expects to NOT be SQL escaped.
    575573 * @param mixed $value Optional. Option value, can be anything.
    576574 * @param mixed $deprecated Optional. Description. Not used anymore.
     
    578576 * @return null returns when finished.
    579577 */
    580 function add_option( $name, $value = '', $deprecated = '', $autoload = 'yes' ) {
     578function add_option( $option, $value = '', $deprecated = '', $autoload = 'yes' ) {
    581579        if ( !empty( $deprecated ) )
    582580                _deprecated_argument( __FUNCTION__, '2.3' );
     
    584582        global $wpdb;
    585583
    586         wp_protect_special_option( $name );
    587         $safe_name = esc_sql( $name );
    588         $value = sanitize_option( $name, $value );
     584        wp_protect_special_option( $option );
     585        $safe_name = esc_sql( $option );
     586        $value = sanitize_option( $option, $value );
    589587
    590588        // Make sure the option doesn't already exist. We can check the 'notoptions' cache before we ask for a db query
    591589        $notoptions = wp_cache_get( 'notoptions', 'options' );
    592         if ( !is_array( $notoptions ) || !isset( $notoptions[$name] ) )
     590        if ( !is_array( $notoptions ) || !isset( $notoptions[$option] ) )
    593591                if ( false !== get_option( $safe_name ) )
    594592                        return;
     
    596594        $value = maybe_serialize( $value );
    597595        $autoload = ( 'no' === $autoload ) ? 'no' : 'yes';
    598         do_action( 'add_option', $name, $value );
     596        do_action( 'add_option', $option, $value );
    599597        if ( ! defined( 'WP_INSTALLING' ) ) {
    600598                if ( 'yes' == $autoload ) {
    601599                        $alloptions = wp_load_alloptions();
    602                         $alloptions[$name] = $value;
     600                        $alloptions[$option] = $value;
    603601                        wp_cache_set( 'alloptions', $alloptions, 'options' );
    604602                } else {
    605                         wp_cache_set( $name, $value, 'options' );
     603                        wp_cache_set( $option, $value, 'options' );
    606604                }
    607605        }
     
    609607        // This option exists now
    610608        $notoptions = wp_cache_get( 'notoptions', 'options' ); // yes, again... we need it to be fresh
    611         if ( is_array( $notoptions ) && isset( $notoptions[$name] ) ) {
    612                 unset( $notoptions[$name] );
     609        if ( is_array( $notoptions ) && isset( $notoptions[$option] ) ) {
     610                unset( $notoptions[$option] );
    613611                wp_cache_set( 'notoptions', $notoptions, 'options' );
    614612        }
    615613
    616         $wpdb->query( $wpdb->prepare( "INSERT INTO `$wpdb->options` (`option_name`, `option_value`, `autoload`) VALUES (%s, %s, %s) ON DUPLICATE KEY UPDATE `option_name` = VALUES(`option_name`), `option_value` = VALUES(`option_value`), `autoload` = VALUES(`autoload`)", $name, $value, $autoload ) );
    617 
    618         do_action( "add_option_{$name}", $name, $value );
    619         do_action( 'added_option', $name, $value );
    620 
    621         return;
    622 }
    623 
    624 /**
    625  * Removes option by name and prevents removal of protected WordPress options.
     614        $result = $wpdb->query( $wpdb->prepare( "INSERT INTO `$wpdb->options` (`option_name`, `option_value`, `autoload`) VALUES (%s, %s, %s) ON DUPLICATE KEY UPDATE `option_name` = VALUES(`option_name`), `option_value` = VALUES(`option_value`), `autoload` = VALUES(`autoload`)", $option, $value, $autoload ) );
     615
     616        do_action( "add_option_{$option}", $option, $value );
     617        do_action( 'added_option', $option, $value );
     618
     619        return $result;
     620}
     621
     622/**
     623 * Removes option by name. Prevents removal of protected WordPress options.
    626624 *
    627625 * @package WordPress
     
    629627 * @since 1.2.0
    630628 *
    631  * @param string $name Option name to remove.
     629 * @param string $option Name of option to remove.
    632630 * @return bool True, if succeed. False, if failure.
    633631 */
    634 function delete_option( $name ) {
     632function delete_option( $option ) {
    635633        global $wpdb;
    636634
    637         wp_protect_special_option( $name );
     635        wp_protect_special_option( $option );
    638636
    639637        // Get the ID, if no ID then return
    640         // expected_slashed ($name)
    641         $option = $wpdb->get_row( "SELECT autoload FROM $wpdb->options WHERE option_name = '$name'" );
    642         if ( is_null($option) )
     638        // expected_slashed ($option)
     639        $row = $wpdb->get_row( "SELECT autoload FROM $wpdb->options WHERE option_name = '$option'" );
     640        if ( is_null( $row ) )
    643641                return false;
    644         do_action( 'delete_option', $name );
    645         // expected_slashed ($name)
    646         $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name = '$name'" );
     642        do_action( 'delete_option', $option );
     643        // expected_slashed ($option)
     644        $result = $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name = '$option'" );
    647645        if ( ! defined( 'WP_INSTALLING' ) ) {
    648                 if ( 'yes' == $option->autoload ) {
     646                if ( 'yes' == $row->autoload ) {
    649647                        $alloptions = wp_load_alloptions();
    650                         if ( isset( $alloptions[$name] ) ) {
    651                                 unset( $alloptions[$name] );
     648                        if ( isset( $alloptions[$option] ) ) {
     649                                unset( $alloptions[$option] );
    652650                                wp_cache_set( 'alloptions', $alloptions, 'options' );
    653651                        }
    654652                } else {
    655                         wp_cache_delete( $name, 'options' );
     653                        wp_cache_delete( $option, 'options' );
    656654                }
    657655        }
    658         do_action( 'deleted_option', $name );
     656        do_action( 'deleted_option', $option );
    659657        return true;
    660658}
     
    670668 * @return bool true if successful, false otherwise
    671669 */
    672 function delete_transient($transient) {
    673         global $_wp_using_ext_object_cache, $wpdb;
     670function delete_transient( $transient ) {
     671        global $_wp_using_ext_object_cache;
    674672
    675673    do_action( 'delete_transient_' . $transient );
    676674
    677675        if ( $_wp_using_ext_object_cache ) {
    678                 return wp_cache_delete($transient, 'transient');
     676                return wp_cache_delete( $transient, 'transient' );
    679677        } else {
    680                 $transient = '_transient_' . esc_sql($transient);
    681                 return delete_option($transient);
     678                $transient = '_transient_' . esc_sql( $transient );
     679                return delete_option( $transient );
    682680        }
    683681}
     
    696694 * @return mixed Value of transient
    697695 */
    698 function get_transient($transient) {
    699         global $_wp_using_ext_object_cache, $wpdb;
     696function get_transient( $transient ) {
     697        global $_wp_using_ext_object_cache;
    700698
    701699        $pre = apply_filters( 'pre_transient_' . $transient, false );
     
    704702
    705703        if ( $_wp_using_ext_object_cache ) {
    706                 $value = wp_cache_get($transient, 'transient');
     704                $value = wp_cache_get( $transient, 'transient' );
    707705        } else {
    708                 $transient_option = '_transient_' . esc_sql($transient);
     706                $safe_transient   = esc_sql( $transient );
     707                $transient_option = '_transient_' . $safe_transient;
    709708                if ( ! defined( 'WP_INSTALLING' ) ) {
    710709                        // If option is not in alloptions, it is not autoloaded and thus has a timeout
    711710                        $alloptions = wp_load_alloptions();
    712711                        if ( !isset( $alloptions[$transient_option] ) ) {
    713                                 $transient_timeout = '_transient_timeout_' . esc_sql($transient);
    714                                 if ( get_option($transient_timeout) < time() ) {
    715                                         delete_option($transient_option);
    716                                         delete_option($transient_timeout);
     712                                $transient_timeout = '_transient_timeout_' . $safe_transient;
     713                                if ( get_option( $transient_timeout ) < time() ) {
     714                                        delete_option( $transient_option  );
     715                                        delete_option( $transient_timeout );
    717716                                        return false;
    718717                                }
     
    720719                }
    721720
    722                 $value = get_option($transient_option);
    723         }
    724 
    725         return apply_filters('transient_' . $transient, $value);
     721                $value = get_option( $transient_option );
     722        }
     723
     724        return apply_filters( 'transient_' . $transient, $value );
    726725}
    727726
     
    729728 * Set/update the value of a transient
    730729 *
    731  * You do not need to serialize values, if the value needs to be serialize, then
     730 * You do not need to serialize values. If the value needs to be serialized, then
    732731 * it will be serialized before it is set.
    733732 *
     
    741740 * @return bool False if value was not set and true if value was set.
    742741 */
    743 function set_transient($transient, $value, $expiration = 0) {
    744         global $_wp_using_ext_object_cache, $wpdb;
     742function set_transient( $transient, $value, $expiration = 0 ) {
     743        global $_wp_using_ext_object_cache;
    745744
    746745    $value = apply_filters( 'pre_set_transient_' . $transient, $value );
    747746
    748747        if ( $_wp_using_ext_object_cache ) {
    749                 return wp_cache_set($transient, $value, 'transient', $expiration);
     748                return wp_cache_set( $transient, $value, 'transient', $expiration );
    750749        } else {
    751750                $transient_timeout = '_transient_timeout_' . $transient;
    752751                $transient = '_transient_' . $transient;
    753                 $safe_transient = esc_sql($transient);
     752                $safe_transient = esc_sql( $transient );
    754753                if ( false === get_option( $safe_transient ) ) {
    755754                        $autoload = 'yes';
    756                         if ( 0 != $expiration ) {
     755                        if ( $expiration ) {
    757756                                $autoload = 'no';
    758757                                add_option($transient_timeout, time() + $expiration, '', 'no');
     
    760759                        return add_option($transient, $value, '', $autoload);
    761760                } else {
    762                         if ( 0 != $expiration )
    763                                 update_option($transient_timeout, time() + $expiration);
     761                        if ( $expiration )
     762                                update_option( $transient_timeout, time() + $expiration );
    764763                        return update_option($transient, $value);
    765764                }
     
    33433342
    33443343/**
    3345  * {@internal Missing Short Description}}
    3346  *
    3347  * @since 2.8
    3348  *
    3349  * @param unknown_type $key
    3350  * @param unknown_type $default
    3351  * @param unknown_type $use_cache
    3352  * @return unknown
    3353  */
    3354 function get_site_option( $key, $default = false, $use_cache = true ) {
     3344 * Retrieve site option value based on name of option.
     3345 *
     3346 * @see get_option()
     3347 * @package WordPress
     3348 * @subpackage Option
     3349 * @since 2.8.0
     3350 *
     3351 * @param string $option Name of option to retrieve. Should already be SQL-escaped
     3352 * @param mixed $default Optional value to return if option doesn't exist. Default false.
     3353 * @param bool $use_cache Whether to use cache. Multisite only. Default true.
     3354 * @return mixed Value set for the option.
     3355 */
     3356function get_site_option( $option, $default = false, $use_cache = true ) {
    33553357        global $wpdb;
    33563358
    33573359        // Allow plugins to short-circuit site options.
    3358         $pre = apply_filters( 'pre_site_option_' . $key, false );
     3360        $pre = apply_filters( 'pre_site_option_' . $option, false );
    33593361        if ( false !== $pre )
    33603362                return $pre;
    33613363
    33623364        if ( !is_multisite() ) {
    3363                 $value = get_option($key, $default);
     3365                $value = get_option($option, $default);
    33643366        } else {
    3365                 $cache_key = "$wpdb->siteid:$key";
     3367                $cache_key = "{$wpdb->siteid}:$option";
    33663368                if ( $use_cache )
    33673369                        $value = wp_cache_get($cache_key, 'site-options');
    33683370
    33693371                if ( false === $value ) {
    3370                         $value = $wpdb->get_var( $wpdb->prepare("SELECT meta_value FROM $wpdb->sitemeta WHERE meta_key = %s AND site_id = %d", $key, $wpdb->siteid) );
     3372                        $value = $wpdb->get_var( $wpdb->prepare("SELECT meta_value FROM $wpdb->sitemeta WHERE meta_key = %s AND site_id = %d", $option, $wpdb->siteid ) );
    33713373
    33723374                        if ( is_null($value) )
     
    33793381        }
    33803382
    3381         return apply_filters( 'site_option_' . $key, $value );
    3382 }
    3383 
    3384 /**
    3385  * {@internal Missing Short Description}}
    3386  *
    3387  * @since 2.8
    3388  *
    3389  * @param unknown_type $key not to be SQL escaped
    3390  * @param unknown_type $value not to be SQL escaped
    3391  * @return unknown
    3392  */
    3393 function add_site_option( $key, $value ) {
     3383        return apply_filters( 'site_option_' . $option, $value );
     3384}
     3385
     3386/**
     3387 * Add a new site option.
     3388 *
     3389 * @see add_option()
     3390 * @package WordPress
     3391 * @subpackage Option
     3392 * @since 2.8.0
     3393 *
     3394 * @param string $option Name of option to add. Expects to not be SQL escaped.
     3395 * @param mixed $value Optional. Option value, can be anything.
     3396 * @return bool False if option was not added and true if option was added.
     3397 */
     3398function add_site_option( $option, $value ) {
    33943399        global $wpdb;
    33953400
    3396         $value = apply_filters( 'pre_add_site_option_' . $key, $value );
     3401        $value = apply_filters( 'pre_add_site_option_' . $option, $value );
    33973402
    33983403        if ( !is_multisite() ) {
    3399                 $result =  add_option($key, $value);
     3404                $result = add_option( $option, $value );
    34003405        } else {
    3401                 $cache_key = "{$wpdb->siteid}:$key";
    3402 
    3403                 if ( $wpdb->get_row( $wpdb->prepare( "SELECT meta_value FROM $wpdb->sitemeta WHERE meta_key = %s AND site_id = %d", $key, $wpdb->siteid ) ) )
    3404                         return update_site_option( $key, $value );
    3405 
    3406                 $value = sanitize_option( $key, $value );
    3407                 wp_cache_set( $cache_key, $value, 'site-options');
     3406                $cache_key = "{$wpdb->siteid}:$option";
     3407
     3408                if ( $wpdb->get_row( $wpdb->prepare( "SELECT meta_value FROM $wpdb->sitemeta WHERE meta_key = %s AND site_id = %d", $option, $wpdb->siteid ) ) )
     3409                        return update_site_option( $option, $value );
     3410
     3411                $value = sanitize_option( $option, $value );
     3412                wp_cache_set( $cache_key, $value, 'site-options' );
    34083413
    34093414                $value = maybe_serialize($value);
    34103415
    3411                 $result = $wpdb->insert( $wpdb->sitemeta, array('site_id' => $wpdb->siteid, 'meta_key' => $key, 'meta_value' => $value) );
    3412         }
    3413 
    3414         do_action( "add_site_option_{$key}", $key, $value );
    3415         do_action( "add_site_option", $key, $value );
     3416                $result = $wpdb->insert( $wpdb->sitemeta, array('site_id' => $wpdb->siteid, 'meta_key' => $option, 'meta_value' => $value ) );
     3417        }
     3418
     3419        do_action( "add_site_option_{$option}", $option, $value );
     3420        do_action( "add_site_option", $option, $value );
    34163421
    34173422        return $result;
     
    34193424
    34203425/**
    3421  * {@internal Missing Short Description}}
    3422  *
    3423  * @since 2.9
    3424  *
    3425  * @param unknown_type $key
    3426  * @return unknown
    3427  */
    3428 function delete_site_option( $key ) {
     3426 * Removes site option by name.
     3427 *
     3428 * @see delete_option()
     3429 * @package WordPress
     3430 * @subpackage Option
     3431 * @since 2.8.0
     3432 *
     3433 * @param string $option Name of option to remove. Expected to be SQL-escaped.
     3434 * @return bool True, if succeed. False, if failure.
     3435 */
     3436function delete_site_option( $option ) {
    34293437        global $wpdb;
    34303438
    3431         //wpmu_protect_special_option( $key ); @todo
    3432 
    3433         do_action( 'pre_delete_site_option_' . $key );
     3439        // ms_protect_special_option( $option ); @todo
     3440
     3441        do_action( 'pre_delete_site_option_' . $option );
    34343442
    34353443        if ( !is_multisite() ) {
    3436                 $result = delete_option($key);
     3444                $result = delete_option( $option );
    34373445        } else {
    3438                 $option = $wpdb->get_row( $wpdb->prepare( "SELECT meta_id FROM {$wpdb->sitemeta} WHERE meta_key = %s AND site_id = %d", $key, $wpdb->siteid ) );
     3446                $option = $wpdb->get_row( $wpdb->prepare( "SELECT meta_id FROM {$wpdb->sitemeta} WHERE meta_key = %s AND site_id = %d", $option, $wpdb->siteid ) );
    34393447                if ( is_null( $option ) || !$option->meta_id )
    34403448                        return false;
    3441                 $cache_key = "{$wpdb->siteid}:$key";
     3449                $cache_key = "{$wpdb->siteid}:$option";
    34423450                wp_cache_delete( $cache_key, 'site-options' );
    34433451
    3444                 $result = $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->sitemeta} WHERE meta_key = %s AND site_id = %d", $key, $wpdb->siteid ) );
    3445         }
    3446 
    3447         do_action( "delete_site_option_{$key}", $key );
    3448         do_action( "delete_site_option", $key );
     3452                $result = $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->sitemeta} WHERE meta_key = %s AND site_id = %d", $option, $wpdb->siteid ) );
     3453        }
     3454
     3455        do_action( "delete_site_option_{$option}", $option );
     3456        do_action( "delete_site_option", $option );
    34493457        return $result;
    34503458}
    34513459
    34523460/**
    3453  * {@internal Missing Short Description}}
    3454  *
     3461 * Update the value of a site option that was already added.
     3462 *
     3463 * @see update_option()
    34553464 * @since 2.8.0
    3456  *
    3457  * @param unknown_type $key not to be SQL escaped
    3458  * @param unknown_type $value not to be SQL escaped
    3459  * @return unknown
    3460  */
    3461 function update_site_option( $key, $value ) {
     3465 * @package WordPress
     3466 * @subpackage Option
     3467 *
     3468 * @param string $option Name of option. Expected to not be SQL-escaped
     3469 * @param mixed $value Option value.
     3470 * @return bool False if value was not updated and true if value was updated.
     3471 */
     3472function update_site_option( $option, $value ) {
    34623473        global $wpdb;
    34633474
    3464         $oldvalue = get_site_option( $key );
    3465         $value = apply_filters( 'pre_update_site_option_' . $key, $value, $oldvalue );
    3466 
    3467         if ( $value == $oldvalue )
     3475        $oldvalue = get_site_option( $option );
     3476        $value = apply_filters( 'pre_update_site_option_' . $option, $value, $oldvalue );
     3477
     3478        if ( $value === $oldvalue )
    34683479                return false;
    34693480
    34703481        if ( !is_multisite() ) {
    3471                 $result = update_option($key, $value);
     3482                $result = update_option( $option, $value );
    34723483        } else {
    3473                 $cache_key = "{$wpdb->siteid}:$key";
    3474 
    3475                 if ( $value && !$wpdb->get_row( $wpdb->prepare("SELECT meta_value FROM $wpdb->sitemeta WHERE meta_key = %s AND site_id = %d", $key, $wpdb->siteid) ) )
    3476                         return add_site_option( $key, $value );
    3477                 $value = sanitize_option( $key, $value );
     3484                $cache_key = "{$wpdb->siteid}:$option";
     3485
     3486                if ( $value && !$wpdb->get_row( $wpdb->prepare( "SELECT meta_value FROM $wpdb->sitemeta WHERE meta_key = %s AND site_id = %d", $option, $wpdb->siteid ) ) )
     3487                        return add_site_option( $option, $value );
     3488                $value = sanitize_option( $option, $value );
    34783489                wp_cache_set( $cache_key, $value, 'site-options' );
    34793490
    3480                 $value = maybe_serialize($value);
    3481                 $result = $wpdb->update( $wpdb->sitemeta, array('meta_value' => $value), array('site_id' => $wpdb->siteid, 'meta_key' => $key) );
    3482         }
    3483 
    3484         do_action( "update_site_option_{$key}", $key, $value );
    3485         do_action( "update_site_option", $key, $value );
     3491                $value = maybe_serialize( $value );
     3492                $result = $wpdb->update( $wpdb->sitemeta, array( 'meta_value' => $value ), array( 'site_id' => $wpdb->siteid, 'meta_key' => $option ) );
     3493        }
     3494
     3495        do_action( "update_site_option_{$option}", $option, $value );
     3496        do_action( "update_site_option", $option, $value );
    34863497        return $result;
    34873498}
     
    34953506 *
    34963507 * @param string $transient Transient name. Expected to not be SQL-escaped
    3497  * @return bool true if successful, false otherwise
    3498  */
    3499 function delete_site_transient($transient) {
    3500         global $_wp_using_ext_object_cache, $wpdb;
     3508 * @return bool True if successful, false otherwise
     3509 */
     3510function delete_site_transient( $transient ) {
     3511        global $_wp_using_ext_object_cache;
    35013512
    35023513        if ( $_wp_using_ext_object_cache ) {
    3503                 return wp_cache_delete($transient, 'site-transient');
     3514                $result = wp_cache_delete( $transient, 'site-transient' );
    35043515        } else {
    3505                 $transient = '_site_transient_' . esc_sql($transient);
    3506                 return delete_site_option($transient);
    3507         }
     3516                $transient = '_site_transient_' . esc_sql( $transient );
     3517                $result = delete_site_option( $transient );
     3518        }
     3519        return $result;
    35083520}
    35093521
     
    35143526 * will be false.
    35153527 *
     3528 * @see get_transient()
    35163529 * @since 2.9.0
    35173530 * @package WordPress
     
    35213534 * @return mixed Value of transient
    35223535 */
    3523 function get_site_transient($transient) {
    3524         global $_wp_using_ext_object_cache, $wpdb;
     3536function get_site_transient( $transient ) {
     3537        global $_wp_using_ext_object_cache;
    35253538
    35263539        $pre = apply_filters( 'pre_site_transient_' . $transient, false );
     
    35293542
    35303543        if ( $_wp_using_ext_object_cache ) {
    3531                 $value = wp_cache_get($transient, 'site-transient');
     3544                $value = wp_cache_get( $transient, 'site-transient' );
    35323545        } else {
    35333546                // Core transients that do not have a timeout. Listed here so querying timeouts can be avoided.
    35343547                $no_timeout = array('update_core', 'update_plugins', 'update_themes');
    3535                 $transient_option = '_site_transient_' . esc_sql($transient);
    3536                 if ( !in_array($transient, $no_timeout) ) {
    3537                         $transient_timeout = '_site_transient_timeout_' . esc_sql($transient);
    3538                         $timeout = get_site_option($transient_timeout);
     3548                $transient_option = '_site_transient_' . esc_sql( $transient );
     3549                if ( ! in_array( $transient, $no_timeout ) ) {
     3550                        $transient_timeout = '_site_transient_timeout_' . esc_sql( $transient );
     3551                        $timeout = get_site_option( $transient_timeout );
    35393552                        if ( false !== $timeout && $timeout < time() ) {
    3540                                 delete_site_option($transient_option);
    3541                                 delete_site_option($transient_timeout);
     3553                                delete_site_option( $transient_option  );
     3554                                delete_site_option( $transient_timeout );
    35423555                                return false;
    35433556                        }
    35443557                }
    35453558
    3546                 $value = get_site_option($transient_option);
    3547         }
    3548 
    3549         return apply_filters('site_transient_' . $transient, $value);
     3559                $value = get_site_option( $transient_option );
     3560        }
     3561
     3562        return apply_filters( 'site_transient_' . $transient, $value );
    35503563}
    35513564
     
    35563569 * it will be serialized before it is set.
    35573570 *
     3571 * @see set_transient()
    35583572 * @since 2.9.0
    35593573 * @package WordPress
     
    35653579 * @return bool False if value was not set and true if value was set.
    35663580 */
    3567 function set_site_transient($transient, $value, $expiration = 0) {
    3568         global $_wp_using_ext_object_cache, $wpdb;
     3581function set_site_transient( $transient, $value, $expiration = 0 ) {
     3582        global $_wp_using_ext_object_cache;
    35693583
    35703584        if ( $_wp_using_ext_object_cache ) {
    3571                 return wp_cache_set($transient, $value, 'site-transient', $expiration);
     3585                $result = wp_cache_set( $transient, $value, 'site-transient', $expiration );
    35723586        } else {
    35733587                $transient_timeout = '_site_transient_timeout_' . $transient;
    35743588                $transient = '_site_transient_' . $transient;
    3575                 $safe_transient = esc_sql($transient);
     3589                $safe_transient = esc_sql( $transient );
    35763590                if ( false === get_site_option( $safe_transient ) ) {
    3577                         if ( 0 != $expiration )
    3578                                 add_site_option($transient_timeout, time() + $expiration);
    3579                         return add_site_option($transient, $value);
     3591                        if ( $expiration )
     3592                                add_site_option( $transient_timeout, time() + $expiration );
     3593                        $result = add_site_option( $transient, $value );
    35803594                } else {
    3581                         if ( 0 != $expiration )
    3582                                 update_site_option($transient_timeout, time() + $expiration);
    3583                         return update_site_option($transient, $value);
     3595                        if ( $expiration )
     3596                                update_site_option( $transient_timeout, time() + $expiration );
     3597                        $result = update_site_option( $transient, $value );
    35843598                }
    35853599        }
     3600        return $result;
    35863601}
    35873602
Note: See TracChangeset for help on using the changeset viewer.