| | 407 | function _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 | |
| | 430 | function wp_flag_set($name, $value=true) { |
| | 431 | return _wp_flag($name, $value); |
| | 432 | } |
| | 433 | |
| | 434 | function 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 | |
| | 442 | function wp_flag_unset($name) { |
| | 443 | return _wp_flag($name, NULL); |
| | 444 | } |
| | 445 | |
| | 446 | |