1 | <?php(电话) |
---|
2 | /** |
---|
三 | *小工具API:WP_Widget基类 |
---|
4 | * |
---|
5 | *@package WordPress |
---|
6 | *@子包小工具 |
---|
7 | *@自4.4.0起 |
---|
8 | */ |
---|
9 | |
---|
10 | /** |
---|
11 | *扩展核心基类以注册小部件。 |
---|
12 | * |
---|
13 | *必须为每个小部件扩展此类,并且必须覆盖WP_widget::widget()。 |
---|
14 | * |
---|
15 | *如果添加小部件选项,WP_widget::update()和WP_Wigget::form()也应被覆盖。 |
---|
16 | * |
---|
17 | *@自2.8.0起 |
---|
18 | *@自4.4.0起从wp-includes/widgets.php移动到自己的文件 |
---|
19 | */ |
---|
20 | #[允许动态属性] |
---|
21 | 班 WP_小工具 { |
---|
22 | |
---|
23 | /** |
---|
24 | *此类型的所有小部件的根ID。 |
---|
25 | * |
---|
26 | *@自2.8.0起 |
---|
27 | *@var混合|string |
---|
28 | */ |
---|
29 | 公众的 $id基础; |
---|
30 | |
---|
31 | /** |
---|
32 | *此小部件类型的名称。 |
---|
33 | * |
---|
34 | *@自2.8.0起 |
---|
35 | *@var字符串 |
---|
36 | */ |
---|
37 | 公众的 $名称; |
---|
38 | |
---|
39 | /** |
---|
40 | *此小部件类型的选项名称。 |
---|
41 | * |
---|
42 | *@自2.8.0起 |
---|
43 | *@var字符串 |
---|
44 | */ |
---|
45 | 公众的 $option_name(选项名称); |
---|
46 | |
---|
47 | /** |
---|
48 | *此小部件类型的Alt选项名称。 |
---|
49 | * |
---|
50 | *@自2.8.0起 |
---|
51 | *@var字符串 |
---|
52 | */ |
---|
53 | 公众的 $可选名称; |
---|
54 | |
---|
55 | /** |
---|
56 | *传递给wp_register_sidebar_widget()的选项数组。 |
---|
57 | * |
---|
58 | *@自2.8.0起 |
---|
59 | *@var数组 |
---|
60 | */ |
---|
61 | 公众的 $小部件选项; |
---|
62 | |
---|
63 | /** |
---|
64 | *传递给wp_register_widget_control()的选项数组。 |
---|
65 | * |
---|
66 | *@自2.8.0起 |
---|
67 | *@var数组 |
---|
68 | */ |
---|
69 | 公众的 $控制选项; |
---|
70 | |
---|
71 | /** |
---|
72 | *当前实例的唯一ID号。 |
---|
73 | * |
---|
74 | *@自2.8.0起 |
---|
75 | *@var bool|int |
---|
76 | */ |
---|
77 | 公众的 $个 = 假; |
---|
78 | |
---|
79 | /** |
---|
80 | *当前实例的唯一ID字符串(ID_base-number)。 |
---|
81 | * |
---|
82 | *@自2.8.0起 |
---|
83 | *@var bool|string |
---|
84 | */ |
---|
85 | 公众的 $id(美元) = 假; |
---|
86 | |
---|
87 | /** |
---|
88 | *小部件数据是否已更新。 |
---|
89 | * |
---|
90 | *在POST提交后更新数据时设置为true-确保数据更新 |
---|
91 | *不会发生两次。 |
---|
92 | * |
---|
93 | *@自2.8.0起 |
---|
94 | *@var bool |
---|
95 | */ |
---|
96 | 公众的 $已更新 = 假; |
---|
97 | |
---|
98 | // |
---|
99 | //必须由子类覆盖的成员函数。 |
---|
100 | // |
---|
101 | |
---|
102 | /** |
---|
103 | *回显小部件内容。 |
---|
104 | * |
---|
105 | *子类应覆盖此函数以生成其小部件代码。 |
---|
106 | * |
---|
107 | *@自2.8.0起 |
---|
108 | * |
---|
109 | *@param array$args显示参数,包括'before_title'、'after_title', |
---|
110 | *'before_widget'和'after_widget]。 |
---|
111 | *@param array$instance小部件特定实例的设置。 |
---|
112 | */ |
---|
113 | 公众的 功能 小装置( $个参数, $实例 ) { |
---|
114 | 死亡( “必须在子类中重写函数WP_Widget::Widget()。” ); |
---|
115 | } |
---|
116 | |
---|
117 | /** |
---|
118 | *更新小部件的特定实例。 |
---|
119 | * |
---|
120 | *此函数应检查`$new_instance`是否设置正确。新计算的 |
---|
121 | *应返回`$instance`的值。如果返回false,则实例不会 |
---|
122 | *已保存/更新。 |
---|
123 | * |
---|
124 | *@自2.8.0起 |
---|
125 | * |
---|
126 | *@param array$new_instance用户通过输入此实例的新设置 |
---|
127 | *WP_Widget::form()。 |
---|
128 | *@param array$old_instance此实例的旧设置。 |
---|
129 | *@return array Settings可保存,bool false可取消保存。 |
---|
130 | */ |
---|
131 | 公众的 功能 更新( $新实例, $old_instance(旧实例) ) { |
---|
132 | 返回 $新实例; |
---|
133 | } |
---|
134 | |
---|
135 | /** |
---|
136 | *输出设置更新表单。 |
---|
137 | * |
---|
138 | *@自2.8.0起 |
---|
139 | * |
---|
140 | *@param array$instance当前设置。 |
---|
141 | *@return string默认返回为“noform”。 |
---|
142 | */ |
---|
143 | 公众的 功能 形式( $实例 ) { |
---|
144 | 回声 '<p class=“no-options-widget”>' . __( “此小部件没有选项。” ) . “</p>”; |
---|
145 | 返回 “无格式”; |
---|
146 | } |
---|
147 | |
---|
148 | //您需要调用的函数。 |
---|
149 | |
---|
150 | /** |
---|
151 | *PHP5构造函数。 |
---|
152 | * |
---|
153 | *@自2.8.0起 |
---|
154 | * |
---|
155 | *@param string$id_base小部件的基本id,小写且唯一。如果留空, |
---|
156 | *将使用小部件的PHP类名的一部分。必须是独一无二的。 |
---|
157 | *@param string$name配置页面上显示的小部件的名称。 |
---|
158 | *@param array$widget_options可选。小工具选项。请参阅wp_register_sidebar_widget()了解 |
---|
159 | *关于已接受参数的信息。默认空数组。 |
---|
160 | *@param array$control_options可选。小工具控制选项。请参阅wp_register_widget_control()了解 |
---|
161 | *关于已接受参数的信息。默认空数组。 |
---|
162 | */ |
---|
163 | 公众的 功能 __构造( $id_基础, $名称, $小部件选项 = 阵列(), $控制选项 = 阵列() ) { |
---|
164 | 如果 ( ! 空的( $id基础 ) ) { |
---|
165 | $id基础 = 斯特劳尔( $id基础 ); |
---|
166 | } 其他的 { |
---|
167 | $id_基础 = preg_替换( '/(wp_)?小部件_/', '', 斯特劳尔( 获取类(_C)( $这个 ) ) ); |
---|
168 | } |
---|
169 | |
---|
170 | $这个->id基础(_B) = $id基础; |
---|
171 | $这个->名称 = $名称; |
---|
172 | $这个->选项名称 = '小部件_' . $这个->id基础(_B); |
---|
173 | $这个->小部件选项(_O) = wp_parse_args( |
---|
174 | $小部件选项, |
---|
175 | 阵列( |
---|
176 | '类名称' => str_替换( '\\', '_', $这个->选项名称 ), |
---|
177 | '自定义_选择_刷新' => 假, |
---|
178 | ) |
---|
179 | ); |
---|
180 | $这个->控制选项(_O) = wp_parse_args( $控制选项, 阵列( 'id基础' => $这个->id基础(_B) ) ); |
---|
181 | } |
---|
182 | |
---|
183 | /** |
---|
184 | *PHP4构造函数。 |
---|
185 | * |
---|
186 | *@自2.8.0起 |
---|
187 | *@已弃用4.3.0请改用__construct()。 |
---|
188 | * |
---|
189 | *@请参阅WP_Widget::__construct() |
---|
190 | * |
---|
191 | *@param string$id_base小部件的基本id,小写且唯一。如果留空, |
---|
192 | *将使用小部件的PHP类名的一部分。必须是独一无二的。 |
---|
193 | *@param string$name配置页面上显示的小部件的名称。 |
---|
194 | *@param array$widget_options可选。小工具选项。请参阅wp_register_sidebar_widget()了解 |
---|
195 | *关于公认论点的信息。默认空数组。 |
---|
196 | *@param array$control_options可选。小工具控制选项。请参阅wp_register_widget_control()了解 |
---|
197 | *关于已接受参数的信息。默认空数组。 |
---|
198 | */ |
---|
199 | 公众的 功能 WP_小工具( $id基础, $名称, $小部件选项 = 阵列(), $控制选项 = 阵列() ) { |
---|
200 | _已弃用的构造函数( “WP_Widget”, “4.3.0”, 获取类(_C)( $这个 ) ); |
---|
201 | WP_小工具::__构造( $id基础, $名称, $小部件选项, $控制选项 ); |
---|
202 | } |
---|
203 | |
---|
204 | /** |
---|
205 | *构造用于form()字段的名称属性 |
---|
206 | * |
---|
207 | *此函数应在form()方法中使用,以创建字段的名称属性 |
---|
208 | *由update()保存 |
---|
209 | * |
---|
210 | *@自2.8.0起 |
---|
211 | *@自4.4.0以来,现在接受数组格式字段名。 |
---|
212 | * |
---|
213 | *@param string$field_name字段名。 |
---|
214 | *@return string `$field_Name`的Name属性。 |
---|
215 | */ |
---|
216 | 公众的 功能 获取字段名称( $字段名称 ) { |
---|
217 | 百万美元 = 斯特波斯( $字段名, '[' ); |
---|
218 | |
---|
219 | 如果 ( 假 !== 百万美元 ) { |
---|
220 | //将第一次出现的“[”替换为“][”。 |
---|
221 | $字段名 = '[' . substr_replace(子替换)( $字段名称, '][', 百万美元, 斯特伦( '[' ) ); |
---|
222 | } 其他的 { |
---|
223 | $字段名 = '[' . $字段名 . ']'; |
---|
224 | } |
---|
225 | |
---|
226 | 返回 '小部件-' . $这个->id基础(_B) . '[' . $这个->数 . ']' . $字段名; |
---|
227 | } |
---|
228 | |
---|
229 | /** |
---|
230 | *构造用于WP_Widget::form()字段的id属性。 |
---|
231 | * |
---|
232 | *此函数应在form()方法中用于创建id属性 |
---|
233 | *用于WP_Widget::update()保存的字段。 |
---|
234 | * |
---|
235 | *@自2.8.0起 |
---|
236 | *@自4.4.0以来,现在接受数组格式字段ID。 |
---|
237 | * |
---|
238 | *@param string$field_name字段名。 |
---|
239 | *@return `$field_name`的字符串ID属性。 |
---|
240 | */ |
---|
241 | 公众的 功能 获取字段id( $字段名 ) { |
---|
242 | $字段名 = str_替换( 阵列( '[]', '[', ']' ), 阵列( '', '-', '' ), $字段名 ); |
---|
243 | $字段名 = 修剪( $字段名, '-' ); |
---|
244 | |
---|
245 | 返回 '小部件-' . $这个->id基础(_B) . '-' . $这个->数 . '-' . $字段名称; |
---|
246 | } |
---|
247 | |
---|
248 | /** |
---|
249 | *注册此小部件类的所有小部件实例。 |
---|
250 | * |
---|
251 | *@自2.8.0起 |
---|
252 | */ |
---|
253 | 公众的 功能 _寄存器() { |
---|
254 | $设置 = $这个->获取设置(_S)(); |
---|
255 | $空 = 真的; |
---|
256 | |
---|
257 | //当$settings是类似数组的对象时,获取一个内部数组以与array_keys()一起使用。 |
---|
258 | 如果 ( $设置 运算符 数组对象 || $设置 运算符 数组迭代器 ) { |
---|
259 | $设置 = $设置->获取阵列副本(); |
---|
260 | } |
---|
261 | |
---|
262 | 如果 ( 是数组(_A)( $设置 ) ) { |
---|
263 | foreach公司 ( 数组键( $设置 ) 作为 $个 ) { |
---|
264 | 如果 ( 是数字(_N)( $个 ) ) { |
---|
265 | $这个->_套( $个 ); |
---|
266 | $这个->_寄存器_一( $个 ); |
---|
267 | $空 = 假; |
---|
268 | } |
---|
269 | } |
---|
270 | } |
---|
271 | |
---|
272 | 如果 ( $空 ) { |
---|
273 | //如果没有,我们用一个通用模板来注册小部件的存在。 |
---|
274 | $这个->_套( 1 ); |
---|
275 | $这个->_寄存器_一(); |
---|
276 | } |
---|
277 | } |
---|
278 | |
---|
279 | /** |
---|
280 | *设置小部件实例的内部订单号。 |
---|
281 | * |
---|
282 | *@自2.8.0起 |
---|
283 | * |
---|
284 | *@param int$number此小部件实例与其他小部件实例相比的唯一订单号 |
---|
285 | *同一类的实例。 |
---|
286 | */ |
---|
287 | 公众的 功能 _套( $个 ) { |
---|
288 | $这个->数 = $数字; |
---|
289 | $这个->身份证件 = $这个->id基础(_B) . '-' . $个; |
---|
290 | } |
---|
291 | |
---|
292 | /** |
---|
293 | *检索小部件显示回调。 |
---|
294 | * |
---|
295 | *@自2.8.0起 |
---|
296 | * |
---|
297 | *@return可调用显示回调。 |
---|
298 | */ |
---|
299 | 公众的 功能 _获取显示回调() { |
---|
300 | 返回 阵列( $这个, '显示回调' ); |
---|
301 | } |
---|
302 | |
---|
303 | /** |
---|
304 | *检索小部件更新回调。 |
---|
305 | * |
---|
306 | *@自2.8.0起 |
---|
307 | * |
---|
308 | *@return可调用更新回调。 |
---|
309 | */ |
---|
310 | 公众的 功能 _获取更新回拨() { |
---|
311 | 返回 阵列( $这个, '更新回调' ); |
---|
312 | } |
---|
313 | |
---|
314 | /** |
---|
315 | *检索表单回调。 |
---|
316 | * |
---|
317 | *@自2.8.0起 |
---|
318 | * |
---|
319 | *@return可调用窗体回调。 |
---|
320 | */ |
---|
321 | 公众的 功能 _获取表单回调() { |
---|
322 | 返回 阵列( $这个, '表单回调' ); |
---|
323 | } |
---|
324 | |
---|
325 | /** |
---|
326 | *确定当前请求是否在Customizer预览中。 |
---|
327 | * |
---|
328 | *如果为true,则当前请求位于Customizer预览中,然后 |
---|
329 | *对象缓存被挂起,小部件应检查此项以决定 |
---|
330 | *是否应将任何内容持久存储到对象缓存, |
---|
331 | *瞬变或其他任何地方。 |
---|
332 | * |
---|
333 | *@自3.9.0起 |
---|
334 | * |
---|
335 | *@global WP_Customize_Manager$WP_Customize |
---|
336 | * |
---|
337 | *@return bool如果在Customizer预览中,则为True,否则为false。 |
---|
338 | */ |
---|
339 | 公众的 功能 is_preview(预览)() { |
---|
340 | 全球的 $wp_自定义; |
---|
341 | 返回 ( 发行( $wp_自定义 ) && $wp_自定义->is_preview(预览)() ); |
---|
342 | } |
---|
343 | |
---|
344 | /** |
---|
345 | *生成实际的小部件内容(请勿覆盖)。 |
---|
346 | * |
---|
347 | *查找实例并调用WP_Widget::Widget()。 |
---|
348 | * |
---|
349 | *@自2.8.0起 |
---|
350 | * |
---|
351 | *@param array$args显示参数。有关信息,请参阅WP_Widget::Widget() |
---|
352 | *基于已接受的论点。 |
---|
353 | *@param int |数组$widget_args{ |
---|
354 | *可选。小部件实例的内部订单号或多小部件参数数组。 |
---|
355 | *默认值1。 |
---|
356 | * |
---|
357 | *@type int$number用于同一小部件的倍数的数字增量。 |
---|
358 | * } |
---|
359 | */ |
---|
360 | 公众的 功能 显示_回调( $个参数, $小部件_参数 = 1 ) { |
---|
361 | 如果 ( 是数字(_N)( $小部件_参数 ) ) { |
---|
362 | $小部件_参数 = 阵列( “数字” => $小部件_参数 ); |
---|
363 | } |
---|
364 | |
---|
365 | $小部件_参数 = wp_parse_args( $小部件_参数, 阵列( “数字” => -1 ) ); |
---|
366 | $这个->_集合( $小部件_参数[“数字”] ); |
---|
367 | $个实例 = $这个->获取设置(_S)(); |
---|
368 | |
---|
369 | 如果 ( 发行( $个实例[ $这个->数 ] ) ) { |
---|
370 | $实例 = $个实例[ $这个->数 ]; |
---|
371 | |
---|
372 | /** |
---|
373 | *过滤特定小部件实例的设置。 |
---|
374 | * |
---|
375 | *返回false将有效地缩短小部件的显示。 |
---|
376 | * |
---|
377 | *@自2.8.0起 |
---|
378 | * |
---|
379 | *@param array$instance当前小部件实例的设置。 |
---|
380 | *@param WP_Widget$小部件当前小部件实例。 |
---|
381 | *@param array$args默认小部件参数的数组。 |
---|
382 | */ |
---|
383 | $实例 = 应用筛选器( '小工具_显示_回调', $实例, $这个, $个参数 ); |
---|
384 | |
---|
385 | 如果 ( 假 === $实例 ) { |
---|
386 | 返回; |
---|
387 | } |
---|
388 | |
---|
389 | $was_cache_addition_suspended = wp_suspend_cache_addition(暂停缓存添加)(); |
---|
390 | 如果 ( $这个->is_preview(预览)() && ! $was_cache_addition_suspended ) { |
---|
391 | wp_suspend_cache_addition(暂停缓存添加)( 真的 ); |
---|
392 | } |
---|
393 | |
---|
394 | $这个->小装置( $个参数, $实例 ); |
---|
395 | |
---|
396 | 如果 ( $这个->is_preview(预览)() ) { |
---|
397 | wp_suspend_cache_addition(暂停缓存添加)( $was_cache_addition_suspended ); |
---|
398 | } |
---|
399 | } |
---|
400 | } |
---|
401 | |
---|
402 | /** |
---|
403 | *处理更改的设置(请勿覆盖)。 |
---|
404 | * |
---|
405 | *@自2.8.0起 |
---|
406 | * |
---|
407 | *@全局数组$wp_registered_widgets |
---|
408 | * |
---|
409 | *@param int$已弃用未使用。 |
---|
410 | */ |
---|
411 | 公众的 功能 update_callback(更新回拨)( $已弃用 = 1 ) { |
---|
412 | 全球的 $wp_注册_widgets; |
---|
413 | |
---|
414 | $所有实例 = $这个->获取设置(_S)(); |
---|
415 | |
---|
416 | //我们需要更新数据。 |
---|
417 | 如果 ( $这个->已更新 ) { |
---|
418 | 返回; |
---|
419 | } |
---|
420 | |
---|
421 | 如果 ( 发行( $_POST(发送)['删除小部件'] ) && $_POST(发送)['删除小部件'] ) { |
---|
422 | //删除此小部件实例的设置。 |
---|
423 | 如果 ( 发行( $_POST(发送)[“widget-id”] ) ) { |
---|
424 | $删除id = $_POST(发送)[“widget-id”]; |
---|
425 | } 其他的 { |
---|
426 | 返回; |
---|
427 | } |
---|
428 | |
---|
429 | 如果 ( isset公司( $wp_注册_widgets[ $删除id ]['参数'][0][“数字”] ) ) { |
---|
430 | $个 = $wp_注册_widgets[ $删除id ]['参数'][0][“数字”]; |
---|
431 | |
---|
432 | 如果 ( $这个->id基础(_B) . '-' . $个 === $删除id ) { |
---|
433 | 未设置( $所有实例[ $个 ] ); |
---|
434 | } |
---|
435 | } |
---|
436 | } 其他的 { |
---|
437 | 如果 ( 发行( $_POST(发送)[ '小部件-' . $这个->id基础(_B) ] ) && 是数组(_A)( $_POST(发送)[ '小部件-' . $这个->id基础(_B) ] ) ) { |
---|
438 | $设置 = $_成本[ '小部件-' . $这个->id基础(_B) ]; |
---|
439 | } 埃尔塞夫 ( 发行( $_POST(发送)['id基础'] ) && $_POST(发送)['id基础'] === $这个->id基础(_B) ) { |
---|
440 | $num个 = $_POST(发送)['多重编号'] ? (整数) $_POST(发送)['多编号'] : (整数) $_POST(发送)['小部件编号']; |
---|
441 | $设置 = 阵列( $num个 => 阵列() ); |
---|
442 | } 其他的 { |
---|
443 | 返回; |
---|
444 | } |
---|
445 | |
---|
446 | foreach公司 ( $设置 作为 $个 => $新实例 ) { |
---|
447 | $新实例 = 条带斜杠_步( $新实例 ); |
---|
448 | $这个->_套( $个 ); |
---|
449 | |
---|
450 | $old_instance(旧实例) = 发行( $所有实例[ $数字 ] ) ? $所有实例[ $个 ] : 阵列(); |
---|
451 | |
---|
452 | $was_cache_addition_suspended = wp_suspend_cache_addition(暂停缓存添加)(); |
---|
453 | 如果 ( $这个->is_preview(预览)() && ! $was_cache_addition_suspended ) { |
---|
454 | wp_suspend_cache_addition(暂停缓存添加)( 真的 ); |
---|
455 | } |
---|
456 | |
---|
457 | $实例 = $这个->更新( $新实例, $old_instance(旧实例) ); |
---|
458 | |
---|
459 | 如果 ( $这个->is_preview(预览)() ) { |
---|
460 | wp_suspend_cache_addition(暂停缓存添加)( $was_cache_addition_suspended ); |
---|
461 | } |
---|
462 | |
---|
463 | /** |
---|
464 | *保存前过滤小部件的设置。 |
---|
465 | * |
---|
466 | *返回false将有效地缩短小部件的功能 |
---|
467 | *以更新设置。 |
---|
468 | * |
---|
469 | *@自2.8.0起 |
---|
470 | * |
---|
471 | *@param array$instance当前小部件实例的设置。 |
---|
472 | *@param array$new_instance新小部件设置的数组。 |
---|
473 | *@param array$old_instance旧窗口小部件设置的数组。 |
---|
474 | *@param WP_Widget$小部件当前小部件实例。 |
---|
475 | */ |
---|
476 | $实例 = 应用筛选器( '小部件更新回调', $实例, $新实例, $old_instance(旧实例), $这个 ); |
---|
477 | |
---|
478 | 如果 ( 假 !== $实例 ) { |
---|
479 | $所有实例[ $个 ] = $实例; |
---|
480 | } |
---|
481 | |
---|
482 | 打破; //只运行一次。 |
---|
483 | } |
---|
484 | } |
---|
485 | |
---|
486 | $这个->保存设置(_S)( $所有实例 ); |
---|
487 | $这个->已更新 = 真的; |
---|
488 | } |
---|
489 | |
---|
490 | /** |
---|
491 | *生成小部件控制表单(请勿覆盖)。 |
---|
492 | * |
---|
493 | *@自2.8.0起 |
---|
494 | * |
---|
495 | *@param int |数组$widget_args{ |
---|
496 | *可选。小部件实例的内部订单号或多小部件参数数组。 |
---|
497 | *默认值1。 |
---|
498 | * |
---|
499 | *@type int$number用于同一小部件的倍数的数字增量。 |
---|
500 | * } |
---|
501 | *@return string|null |
---|
502 | */ |
---|
503 | 公众的 功能 表单回调( $小部件_参数 = 1 ) { |
---|
504 | 如果 ( 是数字(_N)( $小部件_参数 ) ) { |
---|
505 | $小部件_参数 = 阵列( “数字” => $小部件_参数 ); |
---|
506 | } |
---|
507 | |
---|
508 | $小部件_参数 = wp_parse_args( $小部件_参数, 阵列( “数字” => -1 ) ); |
---|
509 | $所有实例 = $这个->获取设置(_S)(); |
---|
510 | |
---|
511 | 如果 ( -1 === $小部件_参数[“数字”] ) { |
---|
512 | //我们回显出一个表单,稍后可以设置“数字”。 |
---|
513 | $这个->_套( '__i__' ); |
---|
514 | $实例 = 阵列(); |
---|
515 | } 其他的 { |
---|
516 | $这个->_套( $小部件_参数[“数字”] ); |
---|
517 | $实例 = $所有实例[ $小部件_参数[“数字”] ]; |
---|
518 | } |
---|
519 | |
---|
520 | /** |
---|
521 | *在显示控件窗体之前过滤小部件实例的设置。 |
---|
522 | * |
---|
523 | *返回控制窗体的假有效短路显示。 |
---|
524 | * |
---|
525 | *@自2.8.0起 |
---|
526 | * |
---|
527 | *@param array$instance当前小部件实例的设置。 |
---|
528 | *@param WP_Widget$小部件当前小部件实例。 |
---|
529 | */ |
---|
530 | $实例 = 应用筛选器( '小部件_窗体_回调', $实例, $这个 ); |
---|
531 | |
---|
532 | $返回 = 无效的; |
---|
533 | |
---|
534 | 如果 ( 假 !== $实例 ) { |
---|
535 | $返回 = $这个->形式( $实例 ); |
---|
536 | |
---|
537 | /** |
---|
538 | *在小部件控件窗体的末尾激发。 |
---|
539 | * |
---|
540 | *使用这个钩子向小部件表单添加额外的字段。钩子 |
---|
541 | 仅当传递给“widget_form_callback”的值时,才会激发* |
---|
542 | *挂钩不是假的。 |
---|
543 | * |
---|
544 | *注意:如果小部件没有表单,文本将从默认值回显 |
---|
545 | *可以使用CSS隐藏表单方法。 |
---|
546 | * |
---|
547 | *@自2.8.0起 |
---|
548 | * |
---|
549 | *@param WP_Widget$Widget小部件实例(通过引用传递)。 |
---|
550 | *@param null$return如果添加了新字段,则返回null。 |
---|
551 | *@param array$instance小部件设置的数组。 |
---|
552 | */ |
---|
553 | do_操作_数组( '在小部件表单中', 阵列( &$这个, &$返回, $实例 ) ); |
---|
554 | } |
---|
555 | |
---|
556 | 返回 $返回; |
---|
557 | } |
---|
558 | |
---|
559 | /** |
---|
560 | *注册小部件类的实例。 |
---|
561 | * |
---|
562 | *@自2.8.0起 |
---|
563 | * |
---|
564 | *@param int$number可选。此小部件实例的唯一订单号 |
---|
565 | *与同一类的其他实例进行比较。默认值为1。 |
---|
566 | */ |
---|
567 | 公众的 功能 _寄存器_一( $个 = -1 ) { |
---|
568 | wp_register_sidebar小部件( |
---|
569 | $这个->身份证件, |
---|
570 | $这个->名称, |
---|
571 | $这个->_获取显示回调(), |
---|
572 | $这个->小部件选项(_O), |
---|
573 | 阵列( “数字” => $个 ) |
---|
574 | ); |
---|
575 | |
---|
576 | _注册表小部件更新回调( |
---|
577 | $这个->id基础(_B), |
---|
578 | $这个->_获取更新回拨(), |
---|
579 | $这个->控制选项(_O), |
---|
580 | 阵列( “数字” => -1 ) |
---|
581 | ); |
---|
582 | |
---|
583 | _注册表小部件格式回调( |
---|
584 | $这个->身份证件, |
---|
585 | $这个->名称, |
---|
586 | $这个->_获取表单回调(), |
---|
587 | $这个->控制选项(_O), |
---|
588 | 阵列( “数字” => $个 ) |
---|
589 | ); |
---|
590 | } |
---|
591 | |
---|
592 | /** |
---|
593 | *保存小部件类的所有实例的设置。 |
---|
594 | * |
---|
595 | *@自2.8.0起 |
---|
596 | * |
---|
597 | *@param array$settings小部件实例设置的多维数组。 |
---|
598 | */ |
---|
599 | 公众的 功能 保存设置(_S)( $设置 ) { |
---|
600 | $设置[“多窗口小部件(_M)”] = 1; |
---|
601 | 更新选项( $这个->选项名称, $设置 ); |
---|
602 | } |
---|
603 | |
---|
604 | /** |
---|
605 | *检索小部件类的所有实例的设置。 |
---|
606 | * |
---|
607 | *@自2.8.0起 |
---|
608 | * |
---|
609 | *@return array小部件实例设置的多维数组。 |
---|
610 | */ |
---|
611 | 公众的 功能 获取设置(_S)() { |
---|
612 | |
---|
613 | $设置 = 获取选项(_O)( $这个->选项名称 ); |
---|
614 | |
---|
615 | 如果 ( 假 === $设置 ) { |
---|
616 | $设置 = 阵列(); |
---|
617 | 如果 ( 发行( $这个->可选名称 ) ) { |
---|
618 | //从替代(传统)选项获取设置。 |
---|
619 | $设置 = 获取选项(_O)( $这个->可选名称, 阵列() ); |
---|
620 | |
---|
621 | //删除替代(传统)选项,因为将使用`$this->option_name`创建新选项。 |
---|
622 | 删除选项( $这个->可选名称 ); |
---|
623 | } |
---|
624 | //保存一个选项,以便下次自动加载。 |
---|
625 | $这个->保存设置(_S)( $设置 ); |
---|
626 | } |
---|
627 | |
---|
628 | 如果 ( ! 是数组(_A)( $设置 ) && ! ( $设置 运算符 数组对象 || $设置 运算符 数组迭代器 ) ) { |
---|
629 | $设置 = 阵列(); |
---|
630 | } |
---|
631 | |
---|
632 | 如果 ( ! 空的( $设置 ) && ! 发行( $设置[“多窗口小部件(_M)”] ) ) { |
---|
633 | //旧格式,如果是单个小部件,则进行转换。 |
---|
634 | $设置 = wp_convert_widget_settings(wp_convert_widget_settings)( $这个->id基础(_B), $这个->选项名称, $设置 ); |
---|
635 | } |
---|
636 | |
---|
637 | 未设置( $设置[“多窗口小部件(_M)”], $设置['__i__'] ); |
---|
638 | |
---|
639 | 返回 $设置; |
---|
640 | } |
---|
641 | } |
---|