WP_Option.php
1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
/*
* I made a boo boo
* This only works with Array variables
*/
class WP_Option implements ArrayAccess, Countable {
private $_ns;
private $_data = Array();
public function __construct($ns, $defaults = null) {
$this->_ns = $ns;
$this->_data = get_option($ns);
if (is_array($defaults)) {
foreach ($this->_data as $key => $val) {
$defaults[$key] = $val;
}
if ($this->_data != $defaults) {
$this->_data = $defaults;
$this->save();
}
}
}
public function offsetExists($var) {
return (isset($this->_data[$var]) ? true : false);
}
public function offsetGet($var) {
return ($this->offsetExists($var) ? $this->_data[$var] : '');
}
public function offsetSet($var, $val) {
$this->_data[$var] = $val;
$this->save();
}
public function offsetUnset($var) {
unset($this->_data[$var]);
$this->save();
}
public function count() {
return count($this->_data);
}
public function save() {
update_option($this->_ns, $this->_data);
}
public function multiSet(Array $data) {
array_merge($this->_data, $data);
$this->save();
}
public function dump() {
echo "Here\n";
print_r($this->_data);
}
}
?>