Make WordPress Core

Ticket #5384: wp-flag-api-r6342-isset.patch

File wp-flag-api-r6342-isset.patch, 1.4 KB (added by tellyworth, 17 years ago)
  • wordpress/wp-includes/functions.php

     
    402402        return $data;
    403403}
    404404
     405/* flag functions */
    405406
     407function _wp_flag($name, $value=NULL) {
     408        // flags are stored in a static associative array
     409        static $_flags = array();
     410
     411        if ( !is_scalar($name) or empty($name) )
     412                return new WP_Error( 'invalid_flag_name', __('Invalid flag name') );
     413               
     414        $name = strval($name);
     415       
     416        // if a value was specified, change it
     417        if (func_num_args() > 1) {
     418                if ($value === NULL) { // null means unset
     419                        unset($_flags[$name]);
     420                        return NULL;
     421                }
     422                else
     423                        return $_flags[$name] = $value;
     424        }
     425        // otherwise just return the existing value without changing it
     426        return ( isset($_flags[$name]) ) ? $_flags[$name] : NULL;
     427
     428}
     429
     430function wp_flag_set($name, $value=true) {
     431        return _wp_flag($name, $value);
     432}
     433
     434function wp_flag_get($name, $default=NULL) {
     435        $flag = _wp_flag($name);
     436        if ( $flag === NULL )
     437                return $default;
     438        else
     439                return $flag;
     440}
     441
     442function wp_flag_unset($name) {
     443        return _wp_flag($name, NULL);
     444}
     445
     446
    406447function gzip_compression() {
    407448        if ( !get_option( 'gzipcompression' ) || ini_get( 'zlib.output_compression' ) == 'On' || ini_get( 'zlib.output_compression_level' ) > 0  || ini_get( 'output_handler' ) == 'ob_gzhandler' || !extension_loaded( 'zlib' ) )
    408449                return false;