Make WordPress Core

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

File wp-flag-api-r6342.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 @$_flags[$name];
     427}
     428
     429function wp_flag_set($name, $value=true) {
     430        return _wp_flag($name, $value);
     431}
     432
     433function wp_flag_get($name, $default=NULL) {
     434        $flag = _wp_flag($name);
     435        if ( $flag === NULL )
     436                return $default;
     437        else
     438                return $flag;
     439}
     440
     441function wp_flag_unset($name) {
     442        return _wp_flag($name, NULL);
     443}
     444
     445
    406446function gzip_compression() {
    407447        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' ) )
    408448                return false;