run:R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
23.8 KB
2026-03-11 16:18:51
R W Run
7.8 KB
2026-03-11 16:18:52
R W Run
36.1 KB
2026-03-11 16:18:51
R W Run
11.9 KB
2026-03-11 16:18:52
R W Run
18.94 KB
2026-03-11 16:18:52
R W Run
7.35 KB
2026-03-11 16:18:52
R W Run
28.6 KB
2026-03-11 16:18:51
R W Run
316 By
2026-03-11 16:18:51
R W Run
12.9 KB
2026-03-11 16:18:51
R W Run
61.02 KB
2026-03-11 16:18:52
R W Run
15 KB
2026-03-11 16:18:51
R W Run
112.05 KB
2026-03-11 16:18:51
R W Run
12.47 KB
2026-03-11 16:18:51
R W Run
15.07 KB
2026-03-11 16:18:52
R W Run
9.84 KB
2026-03-11 16:18:52
R W Run
13.17 KB
2026-03-11 16:18:52
R W Run
33.83 KB
2026-03-11 16:18:51
R W Run
42.63 KB
2026-03-11 16:18:51
R W Run
55.71 KB
2026-03-11 16:18:52
R W Run
12.53 KB
2026-03-11 16:18:51
R W Run
2.55 KB
2026-03-11 16:18:52
R W Run
28.92 KB
2026-03-11 16:18:52
R W Run
539 By
2026-03-11 16:18:51
R W Run
367 By
2026-03-11 16:18:52
R W Run
42.65 KB
2026-03-11 16:18:51
R W Run
401 By
2026-03-11 16:18:51
R W Run
6.61 KB
2026-03-11 16:18:51
R W Run
664 By
2026-03-11 16:18:52
R W Run
20.63 KB
2026-03-11 16:18:51
R W Run
2.18 KB
2026-03-11 16:18:52
R W Run
453 By
2026-03-11 16:18:52
R W Run
457 By
2026-03-11 16:18:51
R W Run
36.83 KB
2026-03-11 16:18:52
R W Run
2.41 KB
2026-03-11 16:18:52
R W Run
8.28 KB
2026-03-11 16:18:51
R W Run
13.89 KB
2026-03-11 16:18:51
R W Run
11.76 KB
2026-03-11 16:18:51
R W Run
2.65 KB
2026-03-11 16:18:51
R W Run
7.43 KB
2026-03-11 16:18:51
R W Run
17.46 KB
2026-03-11 16:18:51
R W Run
5.14 KB
2026-03-11 16:18:52
R W Run
16.7 KB
2026-03-11 16:18:51
R W Run
8.28 KB
2026-03-11 16:18:52
R W Run
2.92 KB
2026-03-11 16:18:52
R W Run
1.32 KB
2026-03-11 16:18:51
R W Run
4.6 KB
2026-03-11 16:18:52
R W Run
11.62 KB
2026-03-11 16:18:52
R W Run
2.5 KB
2026-03-11 16:18:51
R W Run
1.97 KB
2026-03-11 16:18:51
R W Run
11.25 KB
2026-03-11 16:18:52
R W Run
5.32 KB
2026-03-11 16:18:51
R W Run
10.99 KB
2026-03-11 16:18:52
R W Run
68.32 KB
2026-03-11 16:18:51
R W Run
6.34 KB
2026-03-11 16:18:51
R W Run
5.49 KB
2026-03-11 16:18:51
R W Run
1.99 KB
2026-03-11 16:18:52
R W Run
7.02 KB
2026-03-11 16:18:51
R W Run
4.91 KB
2026-03-11 16:18:52
R W Run
16.86 KB
2026-03-11 16:18:51
R W Run
24.23 KB
2026-03-11 16:18:51
R W Run
3.97 KB
2026-03-11 16:18:51
R W Run
47.66 KB
2026-03-11 16:18:51
R W Run
9.22 KB
2026-03-11 16:18:51
R W Run
25.51 KB
2026-03-11 16:18:51
R W Run
198.38 KB
2026-03-11 16:18:52
R W Run
56.65 KB
2026-03-11 16:18:51
R W Run
10.46 KB
2026-03-11 16:18:51
R W Run
10.95 KB
2026-03-11 16:18:52
R W Run
29.26 KB
2026-03-11 16:18:51
R W Run
70.91 KB
2026-03-11 16:18:52
R W Run
35.3 KB
2026-03-11 16:18:52
R W Run
16.61 KB
2026-03-11 16:18:52
R W Run
2.57 KB
2026-03-11 16:18:52
R W Run
39.83 KB
2026-03-11 16:18:51
R W Run
70.64 KB
2026-03-11 16:18:51
R W Run
15.56 KB
2026-03-11 16:18:52
R W Run
7.33 KB
2026-03-11 16:18:52
R W Run
253 By
2026-03-11 16:18:51
R W Run
7.96 KB
2026-03-11 16:18:52
R W Run
3.23 KB
2026-03-11 16:18:52
R W Run
969 By
2026-03-11 16:18:52
R W Run
16.28 KB
2026-03-11 16:18:51
R W Run
7.22 KB
2026-03-11 16:18:51
R W Run
12.95 KB
2026-03-11 16:18:51
R W Run
6.53 KB
2026-03-11 16:18:51
R W Run
3.42 KB
2026-03-11 16:18:52
R W Run
5.84 KB
2026-03-11 16:18:51
R W Run
1.97 KB
2026-03-11 16:18:51
R W Run
4.3 KB
2026-03-11 16:18:52
R W Run
2.91 KB
2026-03-11 16:18:51
R W Run
16.46 KB
2026-03-11 16:18:52
R W Run
40.6 KB
2026-03-11 16:18:51
R W Run
20.22 KB
2026-03-11 16:18:51
R W Run
36.11 KB
2026-03-11 16:18:52
R W Run
17.01 KB
2026-03-11 16:18:51
R W Run
7.27 KB
2026-03-11 16:18:52
R W Run
6.62 KB
2026-03-11 16:18:52
R W Run
16.49 KB
2026-03-11 16:18:52
R W Run
1.79 KB
2026-03-11 16:18:52
R W Run
29.82 KB
2026-03-11 16:18:51
R W Run
6.67 KB
2026-03-11 16:18:52
R W Run
8.98 KB
2026-03-11 16:18:52
R W Run
19.42 KB
2026-03-11 16:18:51
R W Run
12.01 KB
2026-03-11 16:18:51
R W Run
17.11 KB
2026-03-11 16:18:51
R W Run
6.74 KB
2026-03-11 16:18:52
R W Run
30.93 KB
2026-03-11 16:18:51
R W Run
4.99 KB
2026-03-11 16:18:51
R W Run
4.25 KB
2026-03-11 16:18:51
R W Run
24.72 KB
2026-03-11 16:18:51
R W Run
29.96 KB
2026-03-11 16:18:52
R W Run
6.41 KB
2026-03-11 16:18:51
R W Run
160 KB
2026-03-11 16:18:51
R W Run
6.72 KB
2026-03-11 16:18:52
R W Run
10.92 KB
2026-03-11 16:18:51
R W Run
4.77 KB
2026-03-11 16:18:51
R W Run
3.38 KB
2026-03-11 16:18:51
R W Run
11.18 KB
2026-03-11 16:18:51
R W Run
62.19 KB
2026-03-11 16:18:51
R W Run
2.46 KB
2026-03-11 16:18:51
R W Run
9.17 KB
2026-03-11 16:18:51
R W Run
32.15 KB
2026-03-11 16:18:51
R W Run
34.05 KB
2026-03-11 16:18:52
R W Run
7.15 KB
2026-03-11 16:18:51
R W Run
3.47 KB
2026-03-11 16:18:52
R W Run
1.87 KB
2026-03-11 16:18:52
R W Run
30.91 KB
2026-03-11 16:18:51
R W Run
7.29 KB
2026-03-11 16:18:52
R W Run
7.35 KB
2026-03-11 16:18:51
R W Run
12.54 KB
2026-03-11 16:18:51
R W Run
19.12 KB
2026-03-11 16:18:51
R W Run
18.12 KB
2026-03-11 16:18:52
R W Run
39.99 KB
2026-03-11 16:18:52
R W Run
5.17 KB
2026-03-11 16:18:52
R W Run
979 By
2026-03-11 16:18:51
R W Run
18.44 KB
2026-03-11 16:18:52
R W Run
10.24 KB
2026-03-11 16:18:51
R W Run
1.77 KB
2026-03-11 16:18:52
R W Run
34.9 KB
2026-03-11 16:18:51
R W Run
7.19 KB
2026-03-11 16:18:52
R W Run
160.5 KB
2026-03-11 16:18:51
R W Run
64.27 KB
2026-03-11 16:18:51
R W Run
27.95 KB
2026-03-11 16:18:51
R W Run
4.69 KB
2026-03-11 16:18:51
R W Run
2.94 KB
2026-03-11 16:18:51
R W Run
43.13 KB
2026-03-11 16:18:52
R W Run
2.25 KB
2026-03-11 16:18:52
R W Run
22.5 KB
2026-03-11 16:18:51
R W Run
13.01 KB
2026-03-11 16:18:52
R W Run
3.27 KB
2026-03-11 16:18:51
R W Run
18 KB
2026-03-11 16:18:51
R W Run
210.4 KB
2026-03-11 16:18:52
R W Run
25.86 KB
2026-03-11 16:18:52
R W Run
115.85 KB
2026-03-11 16:18:51
R W Run
373 By
2026-03-11 16:18:52
R W Run
343 By
2026-03-11 16:18:52
R W Run
338 By
2026-03-11 16:18:51
R W Run
100.73 KB
2026-03-11 16:18:52
R W Run
130.93 KB
2026-03-11 16:18:51
R W Run
19.1 KB
2026-03-11 16:18:51
R W Run
17.41 KB
2026-03-11 16:18:52
R W Run
41.98 KB
2026-03-11 16:18:52
R W Run
400 By
2026-03-11 16:18:52
R W Run
11.1 KB
2026-03-11 16:18:52
R W Run
37.02 KB
2026-03-11 16:18:51
R W Run
2.24 KB
2026-03-11 16:18:51
R W Run
188.13 KB
2026-03-11 16:18:51
R W Run
338 By
2026-03-11 16:18:51
R W Run
38 KB
2026-03-11 16:18:51
R W Run
4.02 KB
2026-03-11 16:18:52
R W Run
5.38 KB
2026-03-11 16:18:51
R W Run
3.05 KB
2026-03-11 16:18:52
R W Run
2.61 KB
2026-03-11 16:18:51
R W Run
1.16 KB
2026-03-11 16:18:52
R W Run
4.04 KB
2026-03-11 16:18:51
R W Run
3.71 KB
2026-03-11 16:18:51
R W Run
24.6 KB
2026-03-11 16:18:51
R W Run
9.56 KB
2026-03-11 16:18:51
R W Run
346.43 KB
2026-03-11 16:18:52
R W Run
281.84 KB
2026-03-11 16:18:52
R W Run
14.95 KB
2026-03-11 16:18:51
R W Run
8.44 KB
2026-03-11 16:18:52
R W Run
168.95 KB
2026-03-11 16:18:52
R W Run
20.71 KB
2026-03-11 16:18:52
R W Run
25.27 KB
2026-03-11 16:18:51
R W Run
5.72 KB
2026-03-11 16:18:51
R W Run
4.63 KB
2026-03-11 16:18:52
R W Run
81.73 KB
2026-03-11 16:18:51
R W Run
67.18 KB
2026-03-11 16:18:51
R W Run
156.36 KB
2026-03-11 16:18:52
R W Run
55.19 KB
2026-03-11 16:18:51
R W Run
162 By
2026-03-11 16:18:51
R W Run
61.72 KB
2026-03-11 16:18:51
R W Run
216.06 KB
2026-03-11 16:18:52
R W Run
65.09 KB
2026-03-11 16:18:51
R W Run
25.24 KB
2026-03-11 16:18:52
R W Run
4.81 KB
2026-03-11 16:18:51
R W Run
6.48 KB
2026-03-11 16:18:52
R W Run
21.25 KB
2026-03-11 16:18:51
R W Run
2.79 KB
2026-03-11 16:18:52
R W Run
89.69 KB
2026-03-11 16:18:52
R W Run
19.42 KB
2026-03-11 16:18:52
R W Run
3.69 KB
2026-03-11 16:18:52
R W Run
4.11 KB
2026-03-11 16:18:51
R W Run
40.74 KB
2026-03-11 16:18:51
R W Run
25.38 KB
2026-03-11 16:18:51
R W Run
43.31 KB
2026-03-11 16:18:52
R W Run
102.57 KB
2026-03-11 16:18:52
R W Run
6.18 KB
2026-03-11 16:18:51
R W Run
124.47 KB
2026-03-11 16:18:52
R W Run
35.65 KB
2026-03-11 16:18:52
R W Run
6.94 KB
2026-03-11 16:18:52
R W Run
67.04 KB
2026-03-11 16:18:52
R W Run
10.62 KB
2026-03-11 16:18:51
R W Run
289.35 KB
2026-03-11 16:18:52
R W Run
36.23 KB
2026-03-11 16:18:51
R W Run
200 By
2026-03-11 16:18:52
R W Run
200 By
2026-03-11 16:18:52
R W Run
98.29 KB
2026-03-11 16:18:52
R W Run
30.02 KB
2026-03-11 16:18:52
R W Run
19.03 KB
2026-03-11 16:18:52
R W Run
5.06 KB
2026-03-11 16:18:52
R W Run
255 By
2026-03-11 16:18:51
R W Run
22.66 KB
2026-03-11 16:18:52
R W Run
154.63 KB
2026-03-11 16:18:51
R W Run
9.68 KB
2026-03-11 16:18:51
R W Run
258 By
2026-03-11 16:18:51
R W Run
23.49 KB
2026-03-11 16:18:51
R W Run
3.16 KB
2026-03-11 16:18:51
R W Run
8.4 KB
2026-03-11 16:18:52
R W Run
441 By
2026-03-11 16:18:51
R W Run
7.39 KB
2026-03-11 16:18:51
R W Run
173 KB
2026-03-11 16:18:52
R W Run
544 By
2026-03-11 16:18:52
R W Run
4.17 KB
2026-03-11 16:18:51
R W Run
35.97 KB
2026-03-11 16:18:52
R W Run
1.69 KB
2026-03-11 16:18:51
R W Run
2.84 KB
2026-03-11 16:18:52
R W Run
6.09 KB
2026-03-11 16:18:51
R W Run
8.71 KB
2026-03-11 16:18:51
R W Run
131.84 KB
2026-03-11 16:18:51
R W Run
37.45 KB
2026-03-11 16:18:51
R W Run
173.89 KB
2026-03-11 16:18:51
R W Run
7.09 KB
2026-03-11 16:18:51
R W Run
6.41 KB
2026-03-11 16:18:51
R W Run
1.08 KB
2026-03-11 16:18:51
R W Run
69.46 KB
2026-03-11 16:18:52
R W Run
445 By
2026-03-11 16:18:51
R W Run
799 By
2026-03-11 16:18:52
R W Run
error_log
📄class-wp-object-cache.php
1<?php
2/**
3 * Object Cache API: WP_Object_Cache class
4 *
5 * @package WordPress
6 * @subpackage Cache
7 * @since 5.4.0
8 */
9
10/**
11 * Core class that implements an object cache.
12 *
13 * The WordPress Object Cache is used to save on trips to the database. The
14 * Object Cache stores all of the cache data to memory and makes the cache
15 * contents available by using a key, which is used to name and later retrieve
16 * the cache contents.
17 *
18 * The Object Cache can be replaced by other caching mechanisms by placing files
19 * in the wp-content folder which is looked at in wp-settings. If that file
20 * exists, then this file will not be included.
21 *
22 * @since 2.0.0
23 */
24#[AllowDynamicProperties]
25class WP_Object_Cache {
26
27 /**
28 * Holds the cached objects.
29 *
30 * @since 2.0.0
31 * @var array
32 */
33 private $cache = array();
34
35 /**
36 * The amount of times the cache data was already stored in the cache.
37 *
38 * @since 2.5.0
39 * @var int
40 */
41 public $cache_hits = 0;
42
43 /**
44 * Amount of times the cache did not have the request in cache.
45 *
46 * @since 2.0.0
47 * @var int
48 */
49 public $cache_misses = 0;
50
51 /**
52 * List of global cache groups.
53 *
54 * @since 3.0.0
55 * @var string[]
56 */
57 protected $global_groups = array();
58
59 /**
60 * The blog prefix to prepend to keys in non-global groups.
61 *
62 * @since 3.5.0
63 * @var string
64 */
65 private $blog_prefix;
66
67 /**
68 * Holds the value of is_multisite().
69 *
70 * @since 3.5.0
71 * @var bool
72 */
73 private $multisite;
74
75 /**
76 * Sets up object properties.
77 *
78 * @since 2.0.8
79 */
80 public function __construct() {
81 $this->multisite = is_multisite();
82 $this->blog_prefix = $this->multisite ? get_current_blog_id() . ':' : '';
83 }
84
85 /**
86 * Makes private properties readable for backward compatibility.
87 *
88 * @since 4.0.0
89 *
90 * @param string $name Property to get.
91 * @return mixed Property.
92 */
93 public function __get( $name ) {
94 return $this->$name;
95 }
96
97 /**
98 * Makes private properties settable for backward compatibility.
99 *
100 * @since 4.0.0
101 *
102 * @param string $name Property to set.
103 * @param mixed $value Property value.
104 */
105 public function __set( $name, $value ) {
106 $this->$name = $value;
107 }
108
109 /**
110 * Makes private properties checkable for backward compatibility.
111 *
112 * @since 4.0.0
113 *
114 * @param string $name Property to check if set.
115 * @return bool Whether the property is set.
116 */
117 public function __isset( $name ) {
118 return isset( $this->$name );
119 }
120
121 /**
122 * Makes private properties un-settable for backward compatibility.
123 *
124 * @since 4.0.0
125 *
126 * @param string $name Property to unset.
127 */
128 public function __unset( $name ) {
129 unset( $this->$name );
130 }
131
132 /**
133 * Serves as a utility function to determine whether a key is valid.
134 *
135 * @since 6.1.0
136 *
137 * @param int|string $key Cache key to check for validity.
138 * @return bool Whether the key is valid.
139 */
140 protected function is_valid_key( $key ) {
141 if ( is_int( $key ) ) {
142 return true;
143 }
144
145 if ( is_string( $key ) && trim( $key ) !== '' ) {
146 return true;
147 }
148
149 $type = gettype( $key );
150
151 if ( ! function_exists( '__' ) ) {
152 wp_load_translations_early();
153 }
154
155 $message = is_string( $key )
156 ? __( 'Cache key must not be an empty string.' )
157 /* translators: %s: The type of the given cache key. */
158 : sprintf( __( 'Cache key must be an integer or a non-empty string, %s given.' ), $type );
159
160 _doing_it_wrong(
161 sprintf( '%s::%s', __CLASS__, debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS, 2 )[1]['function'] ),
162 $message,
163 '6.1.0'
164 );
165
166 return false;
167 }
168
169 /**
170 * Serves as a utility function to determine whether a key exists in the cache.
171 *
172 * @since 3.4.0
173 *
174 * @param int|string $key Cache key to check for existence.
175 * @param string $group Cache group for the key existence check.
176 * @return bool Whether the key exists in the cache for the given group.
177 */
178 protected function _exists( $key, $group ) {
179 return isset( $this->cache[ $group ] ) && ( isset( $this->cache[ $group ][ $key ] ) || array_key_exists( $key, $this->cache[ $group ] ) );
180 }
181
182 /**
183 * Adds data to the cache if it doesn't already exist.
184 *
185 * @since 2.0.0
186 *
187 * @uses WP_Object_Cache::_exists() Checks to see if the cache already has data.
188 * @uses WP_Object_Cache::set() Sets the data after the checking the cache
189 * contents existence.
190 *
191 * @param int|string $key What to call the contents in the cache.
192 * @param mixed $data The contents to store in the cache.
193 * @param string $group Optional. Where to group the cache contents. Default 'default'.
194 * @param int $expire Optional. When to expire the cache contents, in seconds.
195 * Default 0 (no expiration).
196 * @return bool True on success, false if cache key and group already exist.
197 */
198 public function add( $key, $data, $group = 'default', $expire = 0 ) {
199 if ( wp_suspend_cache_addition() ) {
200 return false;
201 }
202
203 if ( ! $this->is_valid_key( $key ) ) {
204 return false;
205 }
206
207 if ( empty( $group ) ) {
208 $group = 'default';
209 }
210
211 $id = $key;
212 if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) ) {
213 $id = $this->blog_prefix . $key;
214 }
215
216 if ( $this->_exists( $id, $group ) ) {
217 return false;
218 }
219
220 return $this->set( $key, $data, $group, (int) $expire );
221 }
222
223 /**
224 * Adds multiple values to the cache in one call.
225 *
226 * @since 6.0.0
227 *
228 * @param array $data Array of keys and values to be added.
229 * @param string $group Optional. Where the cache contents are grouped. Default empty.
230 * @param int $expire Optional. When to expire the cache contents, in seconds.
231 * Default 0 (no expiration).
232 * @return bool[] Array of return values, grouped by key. Each value is either
233 * true on success, or false if cache key and group already exist.
234 */
235 public function add_multiple( array $data, $group = '', $expire = 0 ) {
236 $values = array();
237
238 foreach ( $data as $key => $value ) {
239 $values[ $key ] = $this->add( $key, $value, $group, $expire );
240 }
241
242 return $values;
243 }
244
245 /**
246 * Replaces the contents in the cache, if contents already exist.
247 *
248 * @since 2.0.0
249 *
250 * @see WP_Object_Cache::set()
251 *
252 * @param int|string $key What to call the contents in the cache.
253 * @param mixed $data The contents to store in the cache.
254 * @param string $group Optional. Where to group the cache contents. Default 'default'.
255 * @param int $expire Optional. When to expire the cache contents, in seconds.
256 * Default 0 (no expiration).
257 * @return bool True if contents were replaced, false if original value does not exist.
258 */
259 public function replace( $key, $data, $group = 'default', $expire = 0 ) {
260 if ( ! $this->is_valid_key( $key ) ) {
261 return false;
262 }
263
264 if ( empty( $group ) ) {
265 $group = 'default';
266 }
267
268 $id = $key;
269 if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) ) {
270 $id = $this->blog_prefix . $key;
271 }
272
273 if ( ! $this->_exists( $id, $group ) ) {
274 return false;
275 }
276
277 return $this->set( $key, $data, $group, (int) $expire );
278 }
279
280 /**
281 * Sets the data contents into the cache.
282 *
283 * The cache contents are grouped by the $group parameter followed by the
284 * $key. This allows for duplicate IDs in unique groups. Therefore, naming of
285 * the group should be used with care and should follow normal function
286 * naming guidelines outside of core WordPress usage.
287 *
288 * The $expire parameter is not used, because the cache will automatically
289 * expire for each time a page is accessed and PHP finishes. The method is
290 * more for cache plugins which use files.
291 *
292 * @since 2.0.0
293 * @since 6.1.0 Returns false if cache key is invalid.
294 *
295 * @param int|string $key What to call the contents in the cache.
296 * @param mixed $data The contents to store in the cache.
297 * @param string $group Optional. Where to group the cache contents. Default 'default'.
298 * @param int $expire Optional. Not used.
299 * @return bool True if contents were set, false if key is invalid.
300 */
301 public function set( $key, $data, $group = 'default', $expire = 0 ) {
302 if ( ! $this->is_valid_key( $key ) ) {
303 return false;
304 }
305
306 if ( empty( $group ) ) {
307 $group = 'default';
308 }
309
310 if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) ) {
311 $key = $this->blog_prefix . $key;
312 }
313
314 if ( is_object( $data ) ) {
315 $data = clone $data;
316 }
317
318 $this->cache[ $group ][ $key ] = $data;
319 return true;
320 }
321
322 /**
323 * Sets multiple values to the cache in one call.
324 *
325 * @since 6.0.0
326 *
327 * @param array $data Array of key and value to be set.
328 * @param string $group Optional. Where the cache contents are grouped. Default empty.
329 * @param int $expire Optional. When to expire the cache contents, in seconds.
330 * Default 0 (no expiration).
331 * @return bool[] Array of return values, grouped by key. Each value is always true.
332 */
333 public function set_multiple( array $data, $group = '', $expire = 0 ) {
334 $values = array();
335
336 foreach ( $data as $key => $value ) {
337 $values[ $key ] = $this->set( $key, $value, $group, $expire );
338 }
339
340 return $values;
341 }
342
343 /**
344 * Retrieves the cache contents, if it exists.
345 *
346 * The contents will be first attempted to be retrieved by searching by the
347 * key in the cache group. If the cache is hit (success) then the contents
348 * are returned.
349 *
350 * On failure, the number of cache misses will be incremented.
351 *
352 * @since 2.0.0
353 *
354 * @param int|string $key The key under which the cache contents are stored.
355 * @param string $group Optional. Where the cache contents are grouped. Default 'default'.
356 * @param bool $force Optional. Unused. Whether to force an update of the local cache
357 * from the persistent cache. Default false.
358 * @param bool|null $found Optional. Whether the key was found in the cache (passed by reference).
359 * Disambiguates a return of false, a storable value. Default null.
360 * @return mixed|false The cache contents on success, false on failure to retrieve contents.
361 */
362 public function get( $key, $group = 'default', $force = false, &$found = null ) {
363 if ( ! $this->is_valid_key( $key ) ) {
364 return false;
365 }
366
367 if ( empty( $group ) ) {
368 $group = 'default';
369 }
370
371 if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) ) {
372 $key = $this->blog_prefix . $key;
373 }
374
375 if ( $this->_exists( $key, $group ) ) {
376 $found = true;
377 $this->cache_hits += 1;
378 if ( is_object( $this->cache[ $group ][ $key ] ) ) {
379 return clone $this->cache[ $group ][ $key ];
380 } else {
381 return $this->cache[ $group ][ $key ];
382 }
383 }
384
385 $found = false;
386 $this->cache_misses += 1;
387 return false;
388 }
389
390 /**
391 * Retrieves multiple values from the cache in one call.
392 *
393 * @since 5.5.0
394 *
395 * @param array $keys Array of keys under which the cache contents are stored.
396 * @param string $group Optional. Where the cache contents are grouped. Default 'default'.
397 * @param bool $force Optional. Whether to force an update of the local cache
398 * from the persistent cache. Default false.
399 * @return array Array of return values, grouped by key. Each value is either
400 * the cache contents on success, or false on failure.
401 */
402 public function get_multiple( $keys, $group = 'default', $force = false ) {
403 $values = array();
404
405 foreach ( $keys as $key ) {
406 $values[ $key ] = $this->get( $key, $group, $force );
407 }
408
409 return $values;
410 }
411
412 /**
413 * Removes the contents of the cache key in the group.
414 *
415 * If the cache key does not exist in the group, then nothing will happen.
416 *
417 * @since 2.0.0
418 *
419 * @param int|string $key What the contents in the cache are called.
420 * @param string $group Optional. Where the cache contents are grouped. Default 'default'.
421 * @param bool $deprecated Optional. Unused. Default false.
422 * @return bool True on success, false if the contents were not deleted.
423 */
424 public function delete( $key, $group = 'default', $deprecated = false ) {
425 if ( ! $this->is_valid_key( $key ) ) {
426 return false;
427 }
428
429 if ( empty( $group ) ) {
430 $group = 'default';
431 }
432
433 if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) ) {
434 $key = $this->blog_prefix . $key;
435 }
436
437 if ( ! $this->_exists( $key, $group ) ) {
438 return false;
439 }
440
441 unset( $this->cache[ $group ][ $key ] );
442 return true;
443 }
444
445 /**
446 * Deletes multiple values from the cache in one call.
447 *
448 * @since 6.0.0
449 *
450 * @param array $keys Array of keys to be deleted.
451 * @param string $group Optional. Where the cache contents are grouped. Default empty.
452 * @return bool[] Array of return values, grouped by key. Each value is either
453 * true on success, or false if the contents were not deleted.
454 */
455 public function delete_multiple( array $keys, $group = '' ) {
456 $values = array();
457
458 foreach ( $keys as $key ) {
459 $values[ $key ] = $this->delete( $key, $group );
460 }
461
462 return $values;
463 }
464
465 /**
466 * Increments numeric cache item's value.
467 *
468 * @since 3.3.0
469 *
470 * @param int|string $key The cache key to increment.
471 * @param int $offset Optional. The amount by which to increment the item's value.
472 * Default 1.
473 * @param string $group Optional. The group the key is in. Default 'default'.
474 * @return int|false The item's new value on success, false on failure.
475 */
476 public function incr( $key, $offset = 1, $group = 'default' ) {
477 if ( ! $this->is_valid_key( $key ) ) {
478 return false;
479 }
480
481 if ( empty( $group ) ) {
482 $group = 'default';
483 }
484
485 if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) ) {
486 $key = $this->blog_prefix . $key;
487 }
488
489 if ( ! $this->_exists( $key, $group ) ) {
490 return false;
491 }
492
493 if ( ! is_numeric( $this->cache[ $group ][ $key ] ) ) {
494 $this->cache[ $group ][ $key ] = 0;
495 }
496
497 $offset = (int) $offset;
498
499 $this->cache[ $group ][ $key ] += $offset;
500
501 if ( $this->cache[ $group ][ $key ] < 0 ) {
502 $this->cache[ $group ][ $key ] = 0;
503 }
504
505 return $this->cache[ $group ][ $key ];
506 }
507
508 /**
509 * Decrements numeric cache item's value.
510 *
511 * @since 3.3.0
512 *
513 * @param int|string $key The cache key to decrement.
514 * @param int $offset Optional. The amount by which to decrement the item's value.
515 * Default 1.
516 * @param string $group Optional. The group the key is in. Default 'default'.
517 * @return int|false The item's new value on success, false on failure.
518 */
519 public function decr( $key, $offset = 1, $group = 'default' ) {
520 if ( ! $this->is_valid_key( $key ) ) {
521 return false;
522 }
523
524 if ( empty( $group ) ) {
525 $group = 'default';
526 }
527
528 if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) ) {
529 $key = $this->blog_prefix . $key;
530 }
531
532 if ( ! $this->_exists( $key, $group ) ) {
533 return false;
534 }
535
536 if ( ! is_numeric( $this->cache[ $group ][ $key ] ) ) {
537 $this->cache[ $group ][ $key ] = 0;
538 }
539
540 $offset = (int) $offset;
541
542 $this->cache[ $group ][ $key ] -= $offset;
543
544 if ( $this->cache[ $group ][ $key ] < 0 ) {
545 $this->cache[ $group ][ $key ] = 0;
546 }
547
548 return $this->cache[ $group ][ $key ];
549 }
550
551 /**
552 * Clears the object cache of all data.
553 *
554 * @since 2.0.0
555 *
556 * @return true Always returns true.
557 */
558 public function flush() {
559 $this->cache = array();
560
561 return true;
562 }
563
564 /**
565 * Removes all cache items in a group.
566 *
567 * @since 6.1.0
568 *
569 * @param string $group Name of group to remove from cache.
570 * @return true Always returns true.
571 */
572 public function flush_group( $group ) {
573 unset( $this->cache[ $group ] );
574
575 return true;
576 }
577
578 /**
579 * Sets the list of global cache groups.
580 *
581 * @since 3.0.0
582 *
583 * @param string|string[] $groups List of groups that are global.
584 */
585 public function add_global_groups( $groups ) {
586 $groups = (array) $groups;
587
588 $groups = array_fill_keys( $groups, true );
589 $this->global_groups = array_merge( $this->global_groups, $groups );
590 }
591
592 /**
593 * Switches the internal blog ID.
594 *
595 * This changes the blog ID used to create keys in blog specific groups.
596 *
597 * @since 3.5.0
598 *
599 * @param int $blog_id Blog ID.
600 */
601 public function switch_to_blog( $blog_id ) {
602 $blog_id = (int) $blog_id;
603 $this->blog_prefix = $this->multisite ? $blog_id . ':' : '';
604 }
605
606 /**
607 * Resets cache keys.
608 *
609 * @since 3.0.0
610 *
611 * @deprecated 3.5.0 Use WP_Object_Cache::switch_to_blog()
612 * @see switch_to_blog()
613 */
614 public function reset() {
615 _deprecated_function( __FUNCTION__, '3.5.0', 'WP_Object_Cache::switch_to_blog()' );
616
617 // Clear out non-global caches since the blog ID has changed.
618 foreach ( array_keys( $this->cache ) as $group ) {
619 if ( ! isset( $this->global_groups[ $group ] ) ) {
620 unset( $this->cache[ $group ] );
621 }
622 }
623 }
624
625 /**
626 * Echoes the stats of the caching.
627 *
628 * Gives the cache hits, and cache misses. Also prints every cached group,
629 * key and the data.
630 *
631 * @since 2.0.0
632 */
633 public function stats() {
634 echo '<p>';
635 echo "<strong>Cache Hits:</strong> {$this->cache_hits}<br />";
636 echo "<strong>Cache Misses:</strong> {$this->cache_misses}<br />";
637 echo '</p>';
638 echo '<ul>';
639 foreach ( $this->cache as $group => $cache ) {
640 echo '<li><strong>Group:</strong> ' . esc_html( $group ) . ' - ( ' . number_format( strlen( serialize( $cache ) ) / KB_IN_BYTES, 2 ) . 'k )</li>';
641 }
642 echo '</ul>';
643 }
644}
645
Ui Ux Design – Teachers Night Out https://cardgames4educators.com Wed, 16 Oct 2024 22:24:18 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://cardgames4educators.com/wp-content/uploads/2024/06/cropped-Card-4-Educators-logo-32x32.png Ui Ux Design – Teachers Night Out https://cardgames4educators.com 32 32 Masters In English How English Speaker https://cardgames4educators.com/masters-in-english-how-english-speaker/ https://cardgames4educators.com/masters-in-english-how-english-speaker/#comments Mon, 27 May 2024 08:54:45 +0000 https://themexriver.com/wp/kadu/?p=1

Erat himenaeos neque id sagittis massa. Hac suscipit pulvinar dignissim platea magnis eu. Don tellus a pharetra inceptos efficitur dui pulvinar. Feugiat facilisis penatibus pulvinar nunc dictumst donec odio platea habitasse. Lacus porta dolor purus elit ante bibendum tortor netus taciti nullam cubilia. Erat per suspendisse placerat morbi egestas pulvinar bibendum sollicitudin nec. Euismod cubilia eleifend velit himenaeos sodales lectus. Leo maximus cras ac porttitor aliquam torquent pulvinar odio volutpat parturient. Quisque risus finibus suspendisse mus purus magnis facilisi condimentum consectetur dui. Curae elit suspendisse cursus vehicula.

Turpis taciti class non vel pretium quis pulvinar tempor lobortis nunc. Libero phasellus parturient sapien volutpat malesuada ornare. Cubilia dignissim sollicitudin rhoncus lacinia maximus. Cras lorem fermentum bibendum pellentesque nisl etiam ligula enim cubilia. Vulputate pede sapien torquent montes tempus malesuada in mattis dis turpis vitae. Porta est tempor ex eget feugiat vulputate ipsum. Justo nec iaculis habitant diam arcu fermentum.

We offer comprehen sive emplo ment services such as assistance wit employer compliance.Our company is your strategic HR partner as instead of HR. john smithson

Cubilia dignissim sollicitudin rhoncus lacinia maximus. Cras lorem fermentum bibendum pellentesque nisl etiam ligula enim cubilia. Vulputate pede sapien torquent montes tempus malesuada in mattis dis turpis vitae.

Exploring Learning Landscapes in Academic

Feugiat facilisis penatibus pulvinar nunc dictumst donec odio platea habitasse. Lacus porta dolor purus elit ante bibendum tortor netus taciti nullam cubilia. Erat per suspendisse placerat morbi egestas pulvinar bibendum sollicitudin nec. Euismod cubilia eleifend velit himenaeos sodales lectus. Leo maximus cras ac porttitor aliquam torquent.

]]>
https://cardgames4educators.com/masters-in-english-how-english-speaker/feed/ 1