使WordPress成为核心

来源: 标签/6.5/型钢混凝土/wp包括/超高压

上次更改时间在这个文件上56714,签入者亚当西尔弗斯坦,9个月前

修订:用于存储后元修订的框架。

允许在修订版中存储发布元数据,包括自动保存和预览:

添加新参数修订_启用寄存器_元数据功能,可将meta存储在修订版中。

添加新的wp_post_revision元数据密钥开发人员可以用来控制修改哪个元数据的过滤器-它传递一个启用了修改的元键数组以及post类型。

启用了修订的元键也会存储用于自动保存,并在恢复修订或自动保存时恢复。此外,元数据现在与用于预览的自动保存修订一起存储。现在可以正确预览对元的更改,而无需覆盖已发布的元(请参阅#20299)或者将数据作为查询变量传递,就像编辑器当前预览特征图像的更改一样。

在确定是否应创建新版本时,将考虑启用修订后对元数据的更改。如果元值自上次修订后发生更改,则会创建新修订。

修订现在保存在wp_后插入_后钩子而不是更新后(_U). Thewp_后插入_后在REST API保存post meta后触发操作,该API支持将meta附加到修订版。为了确保与现有操作使用向后兼容,wp_save_post_revision_on插入如果插件删除了以前的do_action('post_updated','wp_save_post_revision')呼叫。

道具:alexkingorg、johnbillion、markjaquith、WraithKenny、kovshenin、azaozz、电视制作、p51labs、mattheu、mikeschorder、Mamaduka、ellatrix、timothyblynjacobs、jakemgold、bookwyrm、ryanduff、minttreal、wonderboymusic、sanchothefat、westonruter、spacedmonkey、hellofromTonya、drewapicture、adamsilverstein、swisspiddy。
修复#20564,#20299.

  • 财产svn:eol风格设置为本地的
文件大小: 62.6 KB
线路 
1<?php(电话)
2/**
*核心元数据API
4 *
5*用于检索和操作各种WordPress对象类型的元数据的函数。元数据
6对象的*是由一个简单的键值对表示的。对象可能包含多个
7*共享相同密钥且仅在值上不同的元数据条目。
8 *
9*@package WordPress
10*@子包元数据
11 */
12
13要求 ABSPATH公司 . WPINC公司 . “/class-wp-metadata-lazyloader.php”;
14
15/**
16*为指定对象添加元数据。
17 *
18*@自2.9.0起
19 *
20*@global wpdb$wpdb WordPress数据库抽象对象。
21 *
22*@param string$meta_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
23*或具有关联元表的任何其他对象类型。
24*@param int$object_id对象元数据的id用于。
25*@param string$meta_key元数据密钥。
26*@param混合了$meta_value元数据值。如果非标量,则必须可序列化。
27*@param bool$unique可选。指定的元数据键对于对象是否应唯一。
28*如果为true,并且对象已经具有指定元数据键的值,
29*不做任何更改。默认值为false。
30*@return int|false成功时的元ID,失败时为false。
31 */
32功能 添加元数据(_M)( $元类型, $对象id, $元键, $元值, $唯一 = 虚假的 ) {
33       全球的 $wpdb;
34
35       如果 ( ! $元类型 || ! $元键 || ! 是数字(_N)( $object_id(对象id) ) ) {
36               返回 虚假的;
37       }
38
39       $对象id = 绝对值( $对象id );
40       如果 ( ! $对象id ) {
41               返回 虚假的;
42       }
43
44       $表 = _获取元数据表( $元类型 );
45       如果 ( ! $表 ) {
46               返回 虚假的;
47       }
48
49       $元_子类型 = 获取对象子类型( $元类型, $对象id );
50
51       $列 = 消毒密钥( $元类型 . “_id” );
52
53       //expected_slashed($meta_key)
54       $元键   = wp_unslash(取消刷新)( $元键 );
55       $元值 = wp_unslash(W)( $元值 );
56       $元值 = 消毒meta( $元键, $元值, $元类型, $元_子类型 );
57
58       /**
59*短路添加特定类型的元数据。
60         *
61*钩子名称的动态部分“$meta_type”是指元对象类型
62*(post、comment、term、user或任何其他具有关联元表的类型)。
63*返回非空值将有效地使函数短路。
64         *
65*可能的挂钩名称包括:
66         *
67*-`add_post_metadata`
68*-`add_comment_metadata(添加注释元数据)`
69*-`add_term_metadata`
70*-`add_user_metadata`
71         *
72*@自3.1.0起
73         *
74*@param null|bool$check是否允许为给定类型添加元数据。
75*对象元数据的@param int$object_id id用于。
76*@param string$meta_key元数据密钥。
77*@param混合了$meta_value元数据值。如果非标量,则必须可序列化。
78*@param bool$unique指定的元键对于对象是否应该是唯一的。
79         */
80       $支票 = 应用筛选器( “添加_{$元类型}_元数据”, 无效的, $对象id, $元键, $元值, $唯一 );
81       如果 ( 无效的 !== $支票 ) {
82               返回 $支票;
83       }
84
85       如果 ( $唯一 && $wpdb->获取变量(
86               $wpdb->准备(
87                       “从中选择计数(*)$表WHERE meta_key=%s与$列=%d“,
88                       $元键,
89                       $对象id
90               )
91       ) ) {
92               返回 虚假的;
93       }
94
95       $元数据 = $元值;
96       $元值 = 可以序列化( $元值 );
97
98       /**
99*在添加特定类型的meta之前立即激发。
100         *
101*钩子名称的动态部分“$meta_type”是指元对象类型
102*(post、comment、term、user或任何其他具有关联元表的类型)。
103         *
104*可能的挂钩名称包括:
105         *
106*-`add_post_meta`
107*-`add_comment_meta`
108*-`add_term_meta`
109*-`add_user_meta`
110         *
111*@自3.1.0起
112         *
113*对象元数据的@param int$object_id id用于。
114*@param string$meta_key元数据密钥。
115*@param混合了$_meta_value元数据值。
116         */
117       do_操作( “添加_{$元类型}_元“, $对象id, $元键, $元数据 );
118
119       $结果 = $wpdb->插入(
120               $表,
121               阵列(
122                       $列     => $对象id,
123                       '元键'   => $元键,
124                       '元值' => $元值,
125               )
126       );
127
128       如果 ( ! $结果 ) {
129               返回 虚假的;
130       }
131
132       中等美元 = (整数) $wpdb->插入id;
133
134       wp_cache_delete(wp_cache_delete)( $对象id, $元类型 . “元数据(_M)” );
135
136       /**
137*添加特定类型的meta后立即激发。
138         *
139*钩子名称的动态部分“$meta_type”是指元对象类型
140*(post、comment、term、user或任何其他具有关联元表的类型)。
141         *
142*可能的挂钩名称包括:
143         *
144*-`added_post_meta`
145*-`added_comment_meta`
146*-`added_term_meta`
147*-`added_user_meta`
148         *
149*@自2.9.0起
150         *
151*@param int$mid成功更新后的元ID。
152*对象元数据的@param int$object_id id用于。
153*@param string$meta_key元数据密钥。
154*@param混合了$_meta_value元数据值。
155         */
156       do_操作( “已添加_{$meta类型}_元“, 中等美元, $object_id(对象id), $元键, $元数据 );
157
158       返回 中等美元;
159}
160
161/**
162*更新指定对象的元数据。如果指定对象的值不存在
163*ID和元数据键,将添加元数据。
164 *
165*@自2.9.0起
166 *
167*@global wpdb$wpdb WordPress数据库抽象对象。
168 *
169*@param string$meta_type对象元数据的类型适用于。接受“post”、“comment”、“term”、“user”,
170*或具有关联元表的任何其他对象类型。
171*对象元数据的@param int$object_id id用于。
172*@param string$meta_key元数据密钥。
173*@param混合了$meta_value元数据值。如果非标量,则必须可序列化。
174*@param混合了$prev_value可选。更新前要检查的上一个值。
175*如果指定,则仅使用更新现有元数据条目
176*此值。否则,更新所有条目。默认空字符串。
177*@return int | bool如果具有给定键的字段不存在,则为新的元字段ID
178*因此添加了,成功更新时为true,
179*失败或传递给函数的值为false
180*与数据库中已有的相同。
181 */
182功能 更新元数据( $元类型, $对象id, $元键, $meta_value(元值), $prev_value = '' ) {
183       全球的 $wpdb;
184
185       如果 ( ! $meta类型 || ! $元键 || ! 是数字(_N)( $对象id ) ) {
186               返回 虚假的;
187       }
188
189       $对象id = 吸收( $对象id );
190       如果 ( ! $对象id ) {
191               返回 虚假的;
192       }
193
194       $表 = _获取元数据表( $元类型 );
195       如果 ( ! $表 ) {
196               返回 虚假的;
197       }
198
199       $元_子类型 = 获取对象子类型( $元类型, $对象id );
200
201       $列   = 清理密钥( $元类型 . “_id” );
202       $id_列 = ( “用户” === $元类型 ) ? “umeta_id” : '元id';
203
204       //expected_slashed($meta_key)
205       $raw_meta_key(原始密钥) = $元键;
206       $元键     = wp_unslash(取消刷新)( $meta密钥 );
207       $passed_value(已通过值) = $元值;
208       $meta_value(元值)   = wp_unslash(取消刷新)( $元值 );
209       $元值   = 消毒meta( $元键, $元值, $元类型, $元_子类型 );
210
211       /**
212*短路更新特定类型的元数据。
213         *
214*钩子名称的动态部分“$meta_type”是指元对象类型
215*(post、comment、term、user或任何其他具有关联元表的类型)。
216*返回非空值将有效地使函数短路。
217         *
218*可能的挂钩名称包括:
219         *
220*-`update_post_metadata`
221*-`update_comment_metadata`
222*-`update_term_metadata`
223*-`update_user_metadata(更新用户元数据)`
224         *
225*@自3.1.0起
226         *
227*@param null|bool$check是否允许更新给定类型的元数据。
228*对象元数据的@param int$object_id id用于。
229*@param string$meta_key元数据密钥。
230*@param混合了$meta_value元数据值。如果非标量,则必须可序列化。
231*@param混合了$prev_value可选。更新前要检查的上一个值。
232*如果指定,则仅使用更新现有元数据条目
233*此值。否则,更新所有条目。
234         */
235       $支票 = 应用筛选器( “更新_{$meta类型}_元数据”, 无效的, $对象id, $元键, $元值, $prev_value );
236       如果 ( 无效的 !== $支票 ) {
237               返回 (布尔) $支票;
238       }
239
240       //如果没有给定上一个值并且密钥只存在一次,请将现有值与新值进行比较。
241       如果 ( 空的( $prev_value ) ) {
242               $old_value(旧值) = 获取元数据( $元类型, $object_id(对象id), $元键 );
243               如果 ( 是可计算的( $old_value(旧值) ) && 计数( $old_value(旧值) ) === 1 ) {
244                       如果 ( $old_value(旧值)[0] === $元值 ) {
245                               返回 虚假的;
246                       }
247               }
248       }
249
250       $元ID = $wpdb->获得_科尔( $wpdb->准备( “”选择“$id_列发件人$表WHERE meta_key=%s与$列=%d“, $meta密钥, $对象id ) );
251       如果 ( 空的( $元ID ) ) {
252               返回 添加元数据(_M)( $元类型, $对象id, $raw_meta_key(原始密钥), $passed_value(已通过值) );
253       }
254
255       $元数据 = $元值;
256       $元值 = 可以序列化( $元值 );
257
258       $数据 = 契约( '元值' );
259       $其中 = 阵列(
260               $列   => $对象_id,
261               '元键' => $元键,
262       );
263
264       如果 ( ! 空的( $prev_value ) ) {
265               $prev_value         = 可以序列化( $prev_value );
266               $其中['元值'] = $prev_value;
267       }
268
269       foreach公司 ( $元ID 作为 $元id ) {
270               /**
271*在更新特定类型的元数据之前立即激发。
272                 *
273*钩子名称的动态部分“$meta_type”是指元对象类型
274*(post、comment、term、user或任何其他具有关联元表的类型)。
275                 *
276*可能的挂钩名称包括:
277                 *
278*-`update_post_meta`
279*-`update_comment_meta`
280*-`update_term_meta`
281*-`update_user_meta`
282                 *
283*@自2.9.0起
284                 *
285*@param int$meta_id要更新的元数据项的id。
286*对象元数据的@param int$object_id id用于。
287*@param string$meta_key元数据密钥。
288*@param混合了$_meta_value元数据值。
289                 */
290               do_操作( “更新_{$元类型}_元“, $元id, $对象id, $元键, $_元数据 );
291
292               如果 ( “发布” === $元类型 ) {
293                       /**
294*在更新帖子元数据之前立即激发。
295                         *
296*@自2.9.0起
297                         *
298*@param int$meta_id要更新的元数据条目的id。
299*@param int$object_id帖子id。
300*@param string$meta_key元数据密钥。
301*@param混合了$meta_value元数据值。这将是值的PHP序列化字符串表示
302*如果值是数组、对象或其本身是PHP序列化字符串。
303                         */
304                       do_操作( “update_postmeta”, $元id, $对象id, $元键, $meta_value(元值) );
305               }
306       }
307
308       $结果 = $wpdb->更新( $表, $数据, $其中 );
309       如果 ( ! $结果 ) {
310               返回 虚假的;
311       }
312
313       wp_cache_delete(wp_cache_delete)( $对象id, $元类型 . “元数据(_M)” );
314
315       foreach公司 ( $元ID 作为 $元id ) {
316               /**
317*更新特定类型的元数据后立即激发。
318                 *
319*钩子名称的动态部分“$meta_type”是指元对象类型
320*(post、comment、term、user或任何其他具有关联元表的类型)。
321                 *
322*可能的挂钩名称包括:
323                 *
324*-`updated_post_meta`
325*-`updated_comment_meta`
326*-`updated_term_meta`
327*-`updated_user_meta`
328                 *
329*@自2.9.0起
330                 *
331*@param int$meta_id更新元数据条目的id。
332*对象元数据的@param int$object_id id用于。
333*@param string$meta_key元数据密钥。
334*@param混合了$_meta_value元数据值。
335                 */
336               do_操作( “已更新_{$元类型}_元“, $元id, $对象id, $元键, $元数据 );
337
338               如果 ( '发布' === $元类型 ) {
339                       /**
340*在更新帖子的元数据后立即激发。
341                         *
342*@自2.9.0起
343                         *
344*@param int$meta_id更新元数据条目的id。
345*@param int$object_id帖子id。
346*@param string$meta_key元数据密钥。
347*@param混合了$meta_value元数据值。这将是值的PHP序列化字符串表示
348*如果值是数组、对象或其本身是PHP序列化字符串。
349                         */
350                       do_操作( '更新的邮戳', $meta_id美元, $对象id, $元键, $元值 );
351               }
352       }
353
354       返回 真的;
355}
356
357/**
358*删除指定对象的元数据。
359 *
360*@自2.9.0起
361 *
362*@global wpdb$wpdb WordPress数据库抽象对象。
363 *
364*@param string$meta_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
365*或具有关联元表的任何其他对象类型。
366*对象元数据的@param int$object_id id用于。
367*@param string$meta_key元数据密钥。
368*@param混合了$meta_value可选。元数据值。如果非标量,则必须可序列化。
369*如果指定,则只删除具有此值的元数据条目。
370*否则,删除具有指定meta_key的所有条目。
371*通过“null”、“false”或空字符串跳过此检查。
372*(为了向后兼容,不可能传递空字符串
373*删除值为空字符串的条目。)
374*默认为空字符串。
375*@param bool$delete_all可选。如果为true,则删除所有对象的匹配元数据条目,
376*忽略指定的object_id。否则,只删除
377*匹配指定object_id的元数据条目。默认为false。
378*@return bool成功删除时为True,失败时为false。
379 */
380功能 删除元数据( $元类型, $对象id, $元键, $元值 = '', $删除_全部 = 虚假的 ) {
381       全球的 $wpdb;
382
383       如果 ( ! $meta类型 || ! $元键 || ! 是数字(_N)( $对象id ) && ! $删除_全部 ) {
384               返回 虚假的;
385       }
386
387       $对象id = 吸收( $对象id );
388       如果 ( ! $对象id && ! $删除_全部 ) {
389               返回 虚假的;
390       }
391
392       $表 = _获取元数据表( $元类型 );
393       如果 ( ! $表 ) {
394               返回 虚假的;
395       }
396
397       $类型_列 = 清理密钥( $元类型 . “_id” );
398       $id_列   = ( “用户” === $元类型 ) ? 'umeta_id' : '元id';
399
400       //expected_slashed($meta_key)
401       $元键   = wp_unslash(取消刷新)( $元键 );
402       $元值 = wp_unslash(取消刷新)( $元值 );
403
404       /**
405*短路删除特定类型的元数据。
406         *
407*钩子名称的动态部分“$meta_type”是指元对象类型
408*(post、comment、term、user或任何其他具有关联元表的类型)。
409*返回非空值将有效地使函数短路。
410         *
411*可能的挂钩名称包括:
412         *
413*-`delete_post_metadata`
414*-`delete_comment_metadata`
415*-`delete_term_metadata`
416*-`delete_user_metadata`
417         *
418*@自3.1.0起
419         *
420*@param null|bool$delete是否允许删除给定类型的元数据。
421*对象元数据的@param int$object_id id用于。
422*@param string$meta_key元数据密钥。
423*@param混合了$meta_value元数据值。如果非标量,则必须可序列化。
424*@param bool$delete_all是否删除匹配的元数据条目
425*对于所有对象,忽略指定的$object_id。
426*默认为false。
427         */
428       $支票 = 应用筛选器( “删除_{$元类型}_元数据”, 无效的, $object_id(对象id), $元键, $元值, $删除_全部 );
429       如果 ( 无效的 !== $支票 ) {
430               返回 (布尔) $支票;
431       }
432
433       $元数据 = $元值;
434       $元值 = 可以序列化( $元值 );
435
436       $查询 = $wpdb->准备( “选择$id_列发件人$表WHERE meta_key=%s“, $元键 );
437
438       如果 ( ! $删除_全部 ) {
439               $查询 .= $wpdb->准备( “和$类型_列=%d“, $对象id );
440       }
441
442       如果 ( '' !== $元值 && 无效的 !== $元值 && 虚假的 !== $元值 ) {
443               $查询 .= $wpdb->准备( '与元值=%s', $meta_value(元值) );
444       }
445
446       $元ID = $wpdb->获取(_col)( $查询 );
447       如果 ( ! 计数( $元ID ) ) {
448               返回 虚假的;
449       }
450
451       如果 ( $删除_全部 ) {
452               如果 ( '' !== $元值 && 无效的 !== $元值 && 虚假的 !== $元值 ) {
453                       $对象ID = $wpdb->获得_科尔( $wpdb->准备( “”选择“$类型_列发件人$表WHERE meta_key=%s AND meta_value=%s“, $元键, $元值 ) );
454               } 其他的 {
455                       $对象ID = $wpdb->获得_科尔( $wpdb->准备( “”选择“$类型_列发件人$表WHERE meta_key=%s“, $元键 ) );
456               }
457       }
458
459       /**
460*在删除特定类型的元数据之前立即激发。
461         *
462*钩子名称的动态部分“$meta_type”是指元对象类型
463*(帖子、评论、术语、用户或任何其他类型,以及相关联的元表)。
464         *
465*可能的挂钩名称包括:
466         *
467*-`delete_post_meta`
468*-`delete_comment_meta`
469*-`delete_term_meta`
470*-`delete_user_meta`
471         *
472*@自3.1.0起
473         *
474*@param string[]$meta_ids要删除的元数据条目ID数组。
475*对象元数据的@param int$object_id id用于。
476*@param string$meta_key元数据密钥。
477*@param混合了$_meta_value元数据值。
478         */
479       do_操作( “删除_{$元类型}_元“, $元ID, $对象id, $元键, $元数据 );
480
481       //老式动作。
482       如果 ( “发布” === $元类型 ) {
483               /**
484*在删除帖子的元数据之前立即激发。
485                 *
486*@自2.9.0起
487                 *
488*@param string[]$meta_ids要删除的元数据条目ID数组。
489                 */
490               do_操作( '删除邮戳', $元ID );
491       }
492
493       $查询 = “”删除来自“$表何处$id_列在(“ . 内爆( ',', $元ID ) . ' )';
494
495       $count个 = $wpdb->查询( $查询 );
496
497       如果 ( ! $count个 ) {
498               返回 虚假的;
499       }
500
501       如果 ( $删除_全部 ) {
502               $数据 = (阵列) $对象ID;
503       } 其他的 {
504               $数据 = 阵列( $对象id );
505       }
506       wp_cache_delete_多个( $数据, $元类型 . “元数据(_M)” );
507
508       /**
509*删除特定类型的元数据后立即激发。
510         *
511*钩子名称的动态部分“$meta_type”是指元对象类型
512*(post、comment、term、user或任何其他具有关联元表的类型)。
513         *
514*可能的挂钩名称包括:
515         *
516*-`deleted_post_meta`
517*-`deleted_comment_meta`
518*-`deleted_term_meta`
519*-`deleted_user_meta`
520         *
521*@自2.9.0起
522         *
523*@param string[]$meta_ids要删除的元数据条目ID数组。
524*对象元数据的@param int$object_id id用于。
525*@param string$meta_key元数据密钥。
526*@param混合了$_meta_value元数据值。
527         */
528       do_操作( “已删除_{$meta类型}_元“, $元ID, $object_id(对象id), $元键, $元数据 );
529
530       //老式动作。
531       如果 ( “发布” === $元类型 ) {
532               /**
533*删除帖子的元数据后立即激发。
534                 *
535*@自2.9.0起
536                 *
537*@param string[]$meta_ids要删除的元数据条目ID数组。
538                 */
539               do_操作( 'deleted_postmeta', $meta_ids(_ID) );
540       }
541
542       返回 真的;
543}
544
545/**
546*检索指定对象类型和ID的元数据字段的值。
547 *
548*如果元字段存在,如果`$single`为true,则返回单个值,
549*或值数组(如果为false)。
550 *
551*如果元字段不存在,则结果取决于get_metadata_default()。
552*默认情况下,如果`$single`为true,则返回空字符串,或者返回空数组
553*如果是假的。
554 *
555*@自2.9.0起
556 *
557*@参见get_metadata_raw()
558*@参见get_metadata_default()
559 *
560*@param string$meta_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
561*或具有关联元表的任何其他对象类型。
562*对象元数据的@param int$object_id id用于。
563*@param string$meta_key可选。元数据键。如果未指定,则检索的所有元数据
564*指定的对象。默认空字符串。
565*@param bool$single可选。如果为true,则仅返回指定`$meta_key`的第一个值。
566*如果未指定`$meta_key`,则此参数无效。默认为false。
567*@return mixed如果`$single`为false,则为值数组。
568*如果`$single`为true,则元字段的值。
569*对于无效的`$object_id`(非数字、零或负值)为False,
570*或如果未指定`$meta_type`。
571*如果传递了有效但不存在的对象ID,则为空字符串。
572 */
573功能 获取元数据( $元类型, $对象_id, $元键 = '', 单个$ = 虚假的 ) {
574       价值$ = 获取元数据( $元类型, $对象id, $元键, 单个$ );
575       如果 ( ! 完整(_N)( 价值$ ) ) {
576               返回 价值$;
577       }
578
579       返回 获取元数据默认值( $元类型, $对象id, $元键, 单个$ );
580}
581
582/**
583*检索指定对象的原始元数据值。
584 *
585*@自5.5.0起
586 *
587*@param string$meta_type对象元数据的类型适用于。接受“post”、“comment”、“term”、“user”,
588*或具有关联元表的任何其他对象类型。
589*对象元数据的@param int$object_id id用于。
590*@param string$meta_key可选。元数据键。如果未指定,则检索的所有元数据
591*指定对象。默认空字符串。
592*@param bool$single可选。如果为true,则仅返回指定`$meta_key`的第一个值。
593*如果未指定`$meta_key`,则此参数无效。默认为false。
594*@return mixed如果`$single`为false,则为值数组。
595*如果`$single`为true,则元字段的值。
596*对于无效的“$object_id”(非数字、零或负值)为False,
597*或如果未指定`$meta_type`。
598*如果值不存在,则为Null。
599 */
600功能 获取元数据( $元类型, $对象id, $元键 = '', 单个$ = 虚假的 ) {
601       如果 ( ! $元类型 || ! 是数字(_N)( $对象id ) ) {
602               返回 虚假的;
603       }
604
605       $对象id = 吸收( $对象id );
606       如果 ( ! $对象id ) {
607               返回 虚假的;
608       }
609
610       /**
611*短路元字段的返回值。
612         *
613*钩子名称的动态部分“$meta_type”是指元对象类型
614*(帖子、评论、术语、用户或任何其他类型,以及相关联的元表)。
615*返回非空值将有效地使函数短路。
616         *
617*可能的过滤器名称包括:
618         *
619*-`get_post_metadata`
620*-`get_comment_metadata`
621*-`get_term_metadata`
622*-`get_user_metadata`
623         *
624*@自3.1.0起
625*@自5.5.0起添加了`$meta_type`参数。
626         *
627*@param mixed$value要返回的值,可以是单个元数据值,也可以是数组
628值的*取决于“$single”的值。默认为null。
629*对象元数据的@param int$object_id id用于。
630*@param string$meta_key元数据密钥。
631*@param bool$single是否只返回指定`$meta_key`的第一个值。
632*@param string$meta_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
633*或具有关联元表的任何其他对象类型。
634         */
635       $支票 = 应用筛选器( “获取_{$元类型}_元数据”, 无效的, $对象id, $元键, 单个$, $元类型 );
636       如果 ( 无效的 !== $支票 ) {
637               如果 ( 单个$ && 是数组(_A)( $支票 ) ) {
638                       返回 $支票[0];
639               } 其他的 {
640                       返回 $支票;
641               }
642       }
643
644       $元缓存 = wp_cache_get(wp_cach_get)( $对象id, $元类型 . “元数据(_M)” );
645
646       如果 ( ! $元缓存 ) {
647               $元缓存 = 更新meta_cache( $元类型, 阵列( $对象id ) );
648               如果 ( 发行( $元缓存[ $对象id ] ) ) {
649                       $元缓存 = $元缓存[ $对象id ];
650               } 其他的 {
651                       $元缓存 = 无效的;
652               }
653       }
654
655       如果 ( ! $元键 ) {
656               返回 $元缓存;
657       }
658
659       如果 ( 发行( $元缓存[ $元键 ] ) ) {
660               如果 ( 单个$ ) {
661                       返回 可以取消序列化( $元缓存[ $元键 ][0] );
662               } 其他的 {
663                       返回 阵列_贴图( '可能被插入(_U)', $元缓存[ $元键 ] );
664               }
665       }
666
667       返回 无效的;
668}
669
670/**
671*检索指定元键和对象的默认元数据值。
672 *
673*默认情况下,如果`$single`为true,则返回空字符串,或者返回空数组
674*如果是假的。
675 *
676*@自5.5.0起
677 *
678*@param string$meta_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
679*或具有关联元表的任何其他对象类型。
680*对象元数据的@param int$object_id id用于。
681*@param string$meta_key元数据密钥。
682*@param bool$single可选。如果为true,则只返回指定的“$meta_key”的第一个值。
683*如果未指定`$meta_key`,则此参数无效。默认为false。
684*@return mixed如果`$single`为false,则为默认值数组。
685*如果`$single`为true,则元字段的默认值。
686 */
687功能 获取元数据默认值( $元类型, $对象id, $元键, 单个$ = 虚假的 ) {
688       如果 ( 单个$ ) {
689               价值$ = '';
690       } 其他的 {
691               价值$ = 阵列();
692       }
693
694       /**
695*过滤指定元键和对象的默认元数据值。
696         *
697*钩子名称的动态部分“$meta_type”是指元对象类型
698*(post、comment、term、user或任何其他具有关联元表的类型)。
699         *
700*可能的过滤器名称包括:
701         *
702*-`default_post_metadata`
703*-`default_comment_metadata`
704*-`default_term_metadata`
705*-`default_user_metadata(默认用户元数据)`
706         *
707*@自5.5.0起
708         *
709*@param mixed$value要返回的值,可以是单个元数据值,也可以是数组
710值的*取决于“$single”的值。
711*对象元数据的@param int$object_id id用于。
712*@param string$meta_key元数据密钥。
713*@param bool$single是否只返回指定`$meta_key`的第一个值。
714*@param string$meta_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
715*或具有关联元表的任何其他对象类型。
716         */
717       美元价值 = 应用筛选器( “默认值_{$元类型}_元数据”, 价值$, $对象id, $元键, 单个$, $元类型 );
718
719       如果 ( ! 单个$ && ! wp_is_numeric_数组( 价值$ ) ) {
720               价值$ = 阵列( 价值$ );
721       }
722
723       返回 价值$;
724}
725
726/**
727*确定给定对象ID是否存在具有给定键的元字段。
728 *
729*@自3.3.0起
730 *
731*@param string$meta_type对象元数据的类型用于。接受“帖子”、“评论”、“术语”、“用户”、,
732*或具有关联元表的任何其他对象类型。
733*@param int$object_id对象元数据的id用于。
734*@param string$meta_key元数据密钥。
735*@return bool具有给定键的元字段是否存在。
736 */
737功能 元数据已存在( $元类型, $对象id, $元键 ) {
738       如果 ( ! $元类型 || ! 是数字(_N)( $对象id ) ) {
739               返回 虚假的;
740       }
741
742       $对象id = 吸收( $对象_id );
743       如果 ( ! $对象id ) {
744               返回 虚假的;
745       }
746
747       /**此过滤器记录在wp-includes/meta.php中*/
748       $支票 = 应用筛选器( “获取_{$元类型}_元数据”, 无效的, $对象id, $元键, 真的, $元类型 );
749       如果 ( 无效的 !== $支票 ) {
750               返回 (布尔) $支票;
751       }
752
753       $元缓存 = wp_cache_get(wp_cach_get)( $对象id, $元类型 . “元数据(_M)” );
754
755       如果 ( ! $元缓存 ) {
756               $meta_cache(_C) = 更新meta_cache( $元类型, 阵列( $object_id(对象id) ) );
757               $元缓存 = $元缓存[ $对象id ];
758       }
759
760       如果 ( 发行( $元缓存[ $元键 ] ) ) {
761               返回 真的;
762       }
763
764       返回 虚假的;
765}
766
767/**
768*按元ID检索元数据。
769 *
770*@自3.3.0起
771 *
772*@global wpdb$wpdb WordPress数据库抽象对象。
773 *
774*@param string$meta_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
775*或具有关联元表的任何其他对象类型。
776*@param int$meta_id特定元数据行的id。
777*@return stdClass|false{
778*元数据对象,如果元数据不存在,则为布尔值“false”。
779 *
780*@type string$meta_key元键。
781*@type混合了$meta_value未序列化的meta值。
782*@type string$meta_id可选。当元类型为除“user”之外的任何值时的元ID。
783*@type string$umeta_id可选。元类型为“user”时的元ID。
784*@type字符串$post_id可选。元类型为“post”时的对象ID。
785*@type string$comment_id可选。元类型为“comment”时的对象ID。
786*@type string$term_id可选。元类型为“term”时的对象ID。
787*@type string$user_id可选。元类型为“user”时的对象ID。
788 * }
789 */
790功能 获取元数据( $元类型, $元id ) {
791       全球的 $wpdb;
792
793       如果 ( ! $元类型 || ! 是数字(_N)( $元id ) || 地板( $元id ) != $元id ) {
794               返回 虚假的;
795       }
796
797       $元id = (整数) $元id;
798       如果 ( $元id <= 0 ) {
799               返回 虚假的;
800       }
801
802       $表 = _获取元数据表( $元类型 );
803       如果 ( ! $表 ) {
804               返回 虚假的;
805       }
806
807       /**
808*通过元ID获取元字段时,短接返回值。
809         *
810*钩子名称的动态部分“$meta_type”是指元对象类型
811*(post、comment、term、user或任何其他具有关联元表的类型)。
812*返回非空值将有效地使函数短路。
813         *
814*可能的挂钩名称包括:
815         *
816*-`get_post_metadata_by_mid`
817*-`get_comment_metadata_by_mid`
818*-`get_term_metadata_by_mid`
819*-`get_user_metadata_by_mid`
820         *
821*@自5.0.0起
822         *
823*@param stdClass | null$value要返回的值。
824*@param int$meta_id元id。
825         */
826       $支票 = 应用筛选器( “获取_{$元类型}_元数据_by_mid“, 无效的, $元id );
827       如果 ( 无效的 !== $支票 ) {
828               返回 $支票;
829       }
830
831       $id_列 = ( “用户” === $元类型 ) ? “umeta_id” : 'meta_id';
832
833       $元 = $wpdb->获取(_R)( $wpdb->准备( “从中选择*$表何处$id_列=%d“, $元id ) );
834
835       如果 ( 空的( $元 ) ) {
836               返回 虚假的;
837       }
838
839       如果 ( 发行( $元->元值(_V) ) ) {
840               $元->元值(_V) = 可以取消序列化( $元->元值(_V) );
841       }
842
843       返回 $元;
844}
845
846/**
847*按元ID更新元数据。
848 *
849*@自3.3.0起
850 *
851*@global wpdb$wpdb WordPress数据库抽象对象。
852 *
853*@param string$meta_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
854*或具有关联元表的任何其他对象类型。
855*@param int$meta_id特定元数据行的id。
856*@param string$meta_value元数据值。如果非标量,则必须可序列化。
857*@param string | false$meta_key可选。您可以提供元键来更新它。默认为false。
858*成功更新时返回bool True,失败时返回false。
859 */
860功能 更新元数据( $元类型, $元id, $元值, $元键 = 虚假的 ) {
861       全球的 $wpdb;
862
863       //确保一切有效。
864       如果 ( ! $元类型 || ! 是数字(_N)( $元id ) || 地板( $元id ) != $元id ) {
865               返回 虚假的;
866       }
867
868       $元id = (整数) $元id;
869       如果 ( $元id <= 0 ) {
870               返回 虚假的;
871       }
872
873       $表 = _获取元数据表( $元类型 );
874       如果 ( ! $表 ) {
875               返回 虚假的;
876       }
877
878       $列   = 消毒密钥( $元类型 . “_id” );
879       $id_列 = ( “用户” === $元类型 ) ? “umeta_id” : '元id';
880
881       /**
882*短路通过元ID更新特定类型的元数据。
883         *
884*钩子名称的动态部分“$meta_type”是指元对象类型
885*(post、comment、term、user或任何其他具有关联元表的类型)。
886*返回非空值将有效地使函数短路。
887         *
888*可能的挂钩名称包括:
889         *
890*-`update_post_metadata_by_mid`
891*-`update_comment_metadata_by_mid`
892*-`update_term_metadata_by_mid`
893*-`update_user_metadata_by_mid`
894         *
895*@自5.0.0起
896         *
897*@param null|bool$check是否允许更新给定类型的元数据。
898*@param int$meta_id元id。
899*@param混合了$meta_value元值。如果非标量,则必须可序列化。
900*@param string | false$meta_key元键(如果提供)。
901         */
902       $支票 = 应用筛选器( “更新_{$元类型}_元数据_by_mid“, 无效的, $元id, $meta_value(元值), $元键 );
903       如果 ( 无效的 !== $支票 ) {
904               返回 (布尔) $支票;
905       }
906
907       //获取元数据,如果找到则继续。
908       $元 = 获取元数据( $元类型, $元id );
909       如果 ( $元 ) {
910               $原始密钥 = $元->元键(_K);
911               $对象id   = $元->{$列};
912
913               /*
914*如果指定了新的元密钥(最后一个参数),请更改元密钥,
915*否则在update语句中使用原始密钥。
916                 */
917               如果 ( 虚假的 === $元键 ) {
918                       $元键 = $原始密钥;
919               } 埃尔塞夫 ( ! 是字符串( $元键 ) ) {
920                       返回 虚假的;
921               }
922
923               $元_子类型 = 获取对象子类型( $元类型, $对象id );
924
925               //清理元数据。
926               $元数据 = $元值;
927               $元值 = 消毒meta( $meta密钥, $元值, $元类型, $meta_子类型 );
928               $元值 = 可以序列化( $元值 );
929
930               //格式化数据查询参数。
931               $数据 = 阵列(
932                       '元键'   => $元键,
933                       '元值' => $元值,
934               );
935
936               //格式化where查询参数。
937               $其中               = 阵列();
938               $其中[ $id_列 ] = $元id;
939
940               /**此操作记录在wp-includes/meta.php中*/
941               do_操作( “更新_{$元类型}_元“, $元id, $对象id, $元键, $元数据 );
942
943               如果 ( “发布” === $元类型 ) {
944                       /**此操作记录在wp-includes/meta.php中*/
945                       do_操作( “update_postmeta”, $元id, $对象id, $元键, $meta_value(元值) );
946               }
947
948               //运行更新查询,$data中的所有字段都是%s,$其中是%d。
949               $结果 = $wpdb->更新( $表, $数据, $其中, “%s”, “%d” );
950               如果 ( ! $结果 ) {
951                       返回 虚假的;
952               }
953
954               //清除缓存。
955               wp_cache_delete(wp_cache_delete)( $对象id, $元类型 . “元数据(_M)” );
956
957               /**此操作记录在wp-includes/meta.php中*/
958               do_操作( “已更新_{$元类型}_元“, $元id, $对象id, $元键, $元数据 );
959
960               如果 ( “发布” === $元类型 ) {
961                       /**此操作记录在wp-includes/meta.php中*/
962                       do_操作( '更新的邮戳', $元id, $对象id, $元键, $元值 );
963               }
964
965               返回 真的;
966       }
967
968       //如果没有找到元数据。
969       返回 虚假的;
970}
971
972/**
973*按元ID删除元数据。
974 *
975*@自3.3.0起
976 *
977*@global wpdb$wpdb WordPress数据库抽象对象。
978 *
979*@param string$meta_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
980*或具有关联元表的任何其他对象类型。
981*@param int$meta_id特定元数据行的id。
982*@return bool成功删除时为True,失败时为false。
983 */
984功能 删除元数据( $元类型, $元id ) {
985       全球的 $wpdb;
986
987       //确保一切有效。
988       如果 ( ! $元类型 || ! 是数字(_N)( $meta_id美元 ) || 地板( $元id ) != $元id ) {
989               返回 虚假的;
990       }
991
992       $元id = (整数) $元id;
993       如果 ( $元id <= 0 ) {
994               返回 虚假的;
995       }
996
997       $表 = _获取元数据表( $元类型 );
998       如果 ( ! $表 ) {
999               返回 虚假的;
1000       }
1001
1002       //对象和ID列。
1003       $列   = 清理密钥( $元类型 . “_id” );
1004       $id_列 = ( “用户” === $meta类型 ) ? “umeta_id” : '元id';
1005
1006       /**
1007*短路,通过元ID删除特定类型的元数据。
1008         *
1009*钩子名称的动态部分“$meta_type”是指元对象类型
1010*(post、comment、term、user或任何其他具有关联元表的类型)。
1011*返回非空值将有效地使函数短路。
1012         *
1013*可能的挂钩名称包括:
1014         *
1015*-`delete_post_metadata_by_mid`
1016*-`delete_comment_metadata_by_mid`
1017*-`delete_term_metadata_by_mid`
1018*-`delete_user_metadata_by_mid`
1019         *
1020*@自5.0.0起
1021         *
1022*@param null|bool$delete是否允许删除给定类型的元数据。
1023*@param int$meta_id元id。
1024         */
1025       $支票 = 应用筛选器( “删除_{$元类型}_元数据_by_mid“, 无效的, $元id );
1026       如果 ( 无效的 !== $支票 ) {
1027               返回 (布尔) $支票;
1028       }
1029
1030       //获取元数据,如果找到则继续。
1031       $元 = 获取元数据( $元类型, $元id );
1032       如果 ( $元 ) {
1033               $对象id = (整数) $元->{$列};
1034
1035               /**此操作记录在wp-includes/meta.php中*/
1036               do_操作( “”删除“_{$元类型}_元“, (阵列) $元id, $对象id, $元->元键(_K), $元->元值(_V) );
1037
1038               //老式动作。
1039               如果 ( '发布' === $元类型 || '评论' === $元类型 ) {
1040                       /**
1041*在删除特定类型的帖子或注释元数据之前立即激发。
1042                         *
1043*钩子名称的动态部分`$meta_type`是指元
1044对象类型(帖子或评论)。
1045                         *
1046*可能的挂钩名称包括:
1047                         *
1048*-`delete_postmeta`
1049*-`delete_commentmeta`
1050*-`delete_termmeta`
1051*-`delete_usermeta`
1052                         *
1053*@自3.4.0起
1054                         *
1055*@param int$meta_id要删除的元数据项的id。
1056                         */
1057                       do_操作( “删除_{$元类型}元“, $元id );
1058               }
1059
1060               //运行查询,如果删除将返回true,否则返回false。
1061               $结果 = (布尔) $wpdb->删除( $表, 阵列( $id_列 => $元id ) );
1062
1063               //清除缓存。
1064               wp_cache_delete(wp_cache_delete)( $对象id, $元类型 . “元数据(_M)” );
1065
1066               /**此操作记录在wp-includs/meta.php中*/
1067               do_操作( “已删除_{$元类型}_元“, (阵列) $元id, $对象id, $元->元键(_K), $元->元值(_V) );
1068
1069               //老式动作。
1070               如果 ( “发布” === $元类型 || '评论' === $元类型 ) {
1071                       /**
1072*删除特定类型的帖子或注释元数据后立即激发。
1073                         *
1074*钩子名称的动态部分`$meta_type`是指元
1075对象类型(帖子或评论)。
1076                         *
1077*可能的挂钩名称包括:
1078                         *
1079*-`deleted_postmeta删除`
1080*-`deleted_commentmeta`
1081*-`deleted_termmeta`
1082*-`deleted_usermeta`
1083                         *
1084*@自3.4.0起
1085                         *
1086*@param int$meta_id已删除元数据条目id。
1087                         */
1088                       do_操作( “已删除_{$元类型}元“, $meta_id美元 );
1089               }
1090
1091               返回 $结果;
1092
1093       }
1094
1095       //找不到元ID。
1096       返回 虚假的;
1097}
1098
1099/**
1100*更新指定对象的元数据缓存。
1101 *
1102*@自2.9.0起
1103 *
1104*@global wpdb$wpdb WordPress数据库抽象对象。
1105 *
1106*@param string$meta_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
1107*或具有关联元表的任何其他对象类型。
1108*@param string | int[]$object_ids要更新缓存的对象ID的数组或逗号分隔列表。
1109*@return array |指定对象的false元数据缓存,失败时为false。
1110 */
1111功能 更新meta_cache( $元类型, $对象ID ) {
1112       全球的 $wpdb;
1113
1114       如果 ( ! $meta类型 || ! $对象ID ) {
1115               返回 虚假的;
1116       }
1117
1118       $表 = _获取元数据表( $元类型 );
1119       如果 ( ! $表 ) {
1120               返回 虚假的;
1121       }
1122
1123       $列 = 清理密钥( $元类型 . “_id” );
1124
1125       如果 ( ! 是数组(_A)( $对象ID ) ) {
1126               $对象ID = preg_替换( '|[^0-9,]|', '', $对象ID );
1127               $对象ID = 爆炸( ',', $对象ID );
1128       }
1129
1130       $对象ID = 阵列_贴图( “intval”, $对象ID );
1131
1132       /**
1133*短路更新特定类型的元数据缓存。
1134         *
1135*钩子名称的动态部分“$meta_type”是指元对象类型
1136*(post、comment、term、user或任何其他具有关联元表的类型)。
1137*返回非空值将有效地使函数短路。
1138         *
1139*可能的挂钩名称包括:
1140         *
1141*-`update_post_metadata_cache`
1142*-`update_comment_metadata_cache`
1143*-`update_term_metadata_cache`
1144*-`update_user_metadata_cache`
1145         *
1146*自5.0.0起
1147         *
1148*@param mixed$check是否允许更新给定类型的元缓存。
1149*@param int[]$object_ids要更新元缓存的对象ID数组。
1150         */
1151       $支票 = 应用筛选器( “更新_{$元类型}_元数据缓存“, 无效的, $对象ID );
1152       如果 ( 无效的 !== $支票 ) {
1153               返回 (布尔) $支票;
1154       }
1155
1156       $cache_key     = $元类型 . '_meta'(_M);
1157       $非缓存ID = 阵列();
1158       $缓存         = 阵列();
1159       $cache_values   = wp_cache_get_multiple(wp_cach_get_multiple)( $对象ID, $cache_key );
1160
1161       foreach公司 ( $cache_values 作为 $id(美元) => $缓存对象 ) {
1162               如果 ( 虚假的 === $缓存对象 ) {
1163                       $非缓存ID[] = $id(美元);
1164               } 其他的 {
1165                       $缓存[ $id(美元) ] = $缓存对象;
1166               }
1167       }
1168
1169       如果 ( 空的( $非缓存ID ) ) {
1170               返回 $缓存;
1171       }
1172
1173       //获取元信息。
1174       $id_list   = 内爆( ',', $非缓存ID );
1175       $id_列 = ( “用户” === $元类型 ) ? “umeta_id” : '元id';
1176
1177       $元列表 = $wpdb->获取结果( “”选择“$列,元键,元值来自$表其中$列英寸($id_list)订购依据$id_列ASC“, 阵列_A );
1178
1179       如果 ( ! 空的( $元列表 ) ) {
1180               foreach公司 ( $元列表 作为 $metarow(元行) ) {
1181                       $mpid($mpid) = (整数) $metarow(元行)[ $列 ];
1182                       $mkey(美元) = $metarow(元行)['元键'];
1183                       $mval(百万美元) = $meta行['元值'];
1184
1185                       //强制子键为数组类型。
1186                       如果 ( ! 发行( $缓存[ $mpid($mpid) ] ) || ! 是数组(_A)( $缓存[ $mpid($mpid) ] ) ) {
1187                               $缓存[ $mpid($mpid) ] = 阵列();
1188                       }
1189                       如果 ( ! 发行( $缓存[ $mpid($mpid) ][ $mkey(美元) ] ) || ! 是数组(_A)( $缓存[ $mpid($mpid) ][ $mkey(美元) ] ) ) {
1190                               $缓存[ $mpid美元 ][ 百万美元 ] = 阵列();
1191                       }
1192
1193                       //向当前pid/key添加一个值。
1194                       $缓存[ $mpid($mpid) ][ $mkey(美元) ][] = $mval(百万美元);
1195               }
1196       }
1197
1198       $数据 = 阵列();
1199       foreach公司 ( $非缓存ID 作为 $id美元 ) {
1200               如果 ( ! 发行( $缓存[ $id美元 ] ) ) {
1201                       $缓存[ $id(美元) ] = 阵列();
1202               }
1203               $数据[ $id(美元) ] = $缓存[ $id(美元) ];
1204       }
1205       wp_cache_add_多个( $数据, $cache_key );
1206
1207       返回 $缓存;
1208}
1209
1210/**
1211*检索延迟加载元数据的队列。
1212 *
1213*@自4.5.0起
1214 *
1215*@return WP_Metadata_Lazyloader元数据Lazyloader队列。
1216 */
1217功能 wp_元数据_偶氮加载器() {
1218       静止的 $wp_metadata_lazyloader;
1219
1220       如果 ( 无效的 === $wp_metadata_lazyloader ) {
1221               $wp_metadata_lazyloader = 新的 WP_元数据_ azyloader();
1222       }
1223
1224       返回 $wp_metadata_lazyloader;
1225}
1226
1227/**
1228*给定一个元查询,生成要附加到主查询的SQL子句。
1229 *
1230*@自3.2.0起
1231 *
1232*@参见WP_Meta_Query
1233 *
1234*@param array$meta_query元查询。
1235*@param string$type元的类型。
1236*@param string$primary_table主数据库表名。
1237*@param string$primary_id_column主id列名。
1238*@param object$context可选。主查询对象。默认为null。
1239*@返回字符串[]|false{
1240*包含要附加到主查询的JOIN和WHERE SQL子句的数组,
1241*或false,如果请求的元类型不存在表。
1242 *
1243*@type string$join SQL片段以附加到主join子句。
1244*@type string$,其中SQL片段附加到主where子句。
1245 * }
1246 */
1247功能 获取meta_sql( $元查询, $类型, $primary_table(主表), $primary_id_column, $上下文 = 无效的 ) {
1248       $meta_query_obj(元查询) = 新的 WP_元数据_查询( $元查询 );
1249       返回 $元查询对象->获取sql( $类型, $primary_table(主表), $primary_id_column, $上下文 );
1250}
1251
1252/**
1253*检索指定对象类型的元数据表的名称。
1254 *
1255*@自2.9.0起
1256 *
1257*@global wpdb$wpdb WordPress数据库抽象对象。
1258 *
1259*@param string$type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
1260*或具有关联元表的任何其他对象类型。
1261*@return string|false元数据表名,如果不存在元数据表,则为false
1262 */
1263功能 _获取元数据表( $类型 ) {
1264       全球的 $wpdb;
1265
1266       $table_name(表格名称) = $类型 . “meta”;
1267
1268       如果 ( 空的( $wpdb->$表格名称 ) ) {
1269               返回 虚假的;
1270       }
1271
1272       返回 $wpdb->$表格名称;
1273}
1274
1275/**
1276*确定元键是否被视为受保护。
1277 *
1278*@自3.1.3起
1279 *
1280*@param string$meta_key元数据密钥。
1281*@param string$meta_type可选。对象元数据的类型为。接受“帖子”、“评论”、“术语”、“用户”、,
1282*或具有关联元表的任何其他对象类型。默认空字符串。
1283*@return bool元键是否被视为受保护。
1284 */
1285功能 受保护的元数据( $元键, $元类型 = '' ) {
1286       $sanitized_key = preg_替换( "/[^\x20像素-\x7E型\p{L}]/“, '', $元键 );
1287       $受保护     = 斯特伦( $sanitized_key ) > 0 && ( '_' === $sanitized_key[0] );
1288
1289       /**
1290*过滤元密钥是否被视为受保护。
1291         *
1292*@自3.2.0起
1293         *
1294*@param bool$protected密钥是否被视为受保护。
1295*@param string$meta_key元数据密钥。
1296*@param string$meta_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
1297*或具有关联元表的任何其他对象类型。
1298         */
1299       返回 应用筛选器( '是受保护的元数据', $受保护, $meta密钥, $元类型 );
1300}
1301
1302/**
1303*清理元值。
1304 *
1305*@自3.1.3起
1306*@自4.9.8起添加了`$object_subtype`参数。
1307 *
1308*@param string$meta_key元数据密钥。
1309*@param混合了要清理的$meta_value元数据值。
1310*@param string$object_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
1311*或具有关联元表的任何其他对象类型。
1312*@param string$object_subtype可选。对象类型的子类型。默认空字符串。
1313*@return混合了Sanitized$meta_value。
1314 */
1315功能 消毒meta( $元键, $元值, $对象类型, $object_子类型 = '' ) {
1316       如果 ( ! 空的( $对象_子类型 ) && has_filter(有过滤器)( “消毒_{$对象类型}_元_{$元键}_的_{$对象_子类型}" ) ) {
1317
1318               /**
1319*过滤特定元类型和子类型的特定元键的清理。
1320                 *
1321*钩子名称的动态部分,`$object_type`,`$meta_key`,
1322*和`$object_subtype`,表示元数据对象类型(comment、post、term或user),
1323*分别为元键值和对象子类型。
1324                 *
1325*@自4.9.8起
1326                 *
1327*@param混合了要清理的$meta_value元数据值。
1328*@param string$meta_key元数据密钥。
1329*@param string$object_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
1330*或具有关联元表的任何其他对象类型。
1331*@param string$object_subtype对象子类型。
1332                 */
1333               返回 应用筛选器( “消毒_{$对象类型}_元_{$元键}_的_{$对象_子类型}", $元值, $元键, $对象类型, $对象_子类型 );
1334       }
1335
1336       /**
1337*过滤特定元类型的特定元密钥的净化。
1338         *
1339*钩子名称、`$meta_type`和`$meta_key`的动态部分,
1340*指元数据对象类型(评论、帖子、术语或用户)和元数据
1341*键值。
1342         *
1343*@自3.3.0起
1344         *
1345*@param混合了要清理的$meta_value元数据值。
1346*@param string$meta_key元数据密钥。
1347*@param string$object_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
1348*或具有关联元表的任何其他对象类型。
1349         */
1350       返回 应用筛选器( “消毒_{$对象类型}_元_{$元键}", $元值, $元键, $对象类型 );
1351}
1352
1353/**
1354*注册元密钥。
1355 *
1356*建议为对象类型和对象子类型的特定组合注册元键。如果通过
1357*省略对象子类型,将为整个对象类型注册元键,但可以部分注册
1358*在同一对象类型和子类型存在更具体的同名元键时被覆盖。
1359 *
1360*如果对象类型不支持任何子类型,例如用户或注释,通常应调用此函数
1361*不传递子类型。
1362 *
1363*@自3.3.0起
1364*@自4.6.0起{@linkhttps://core.trac.wordpress.org/ticket/35658被改进的
1365*以支持要附加到已注册元密钥的数据数组}。的上一个参数
1366*`$sanitize_callback`和`$auth_callback `已折叠到此数组中。
1367*@自4.9.8以来,“$object_subtype”参数已添加到参数数组中。
1368*@自5.3.0起有效的元类型扩展为包括“数组”和“对象”。
1369*@自5.5.0起将`$default`参数添加到arguments数组。
1370*@since 6.4.0将`$revisions_enabled`参数添加到参数数组中。
1371 *
1372*@param string$object_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
1373*或具有关联元表的任何其他对象类型。
1374*@param string$meta_key要注册的元键。
1375*@param数组$args{
1376*注册时用于描述元密钥的数据。
1377 *
1378*@type string$object_subtype A子类型;例如,如果对象类型为“post”,则为post类型。如果留空,
1379*元密钥将在整个对象类型上注册。默认为空。
1380*@type string$type与此元键关联的数据类型。
1381*有效值为“string”、“boolean”、“integer”、“number”、“array”和“object”。
1382*@type string$description附加到此元键的数据的描述。
1383*@type bool$single元键是否每个对象有一个值,或每个对象有值数组。
1384*@type mixed$default如果尚未设置值,则从get_metadata()返回默认值。
1385*使用非单一元键时,默认值为第一个条目。
1386*换句话说,当调用get_metadata()时,`$single`设置为`false`,
1387*此处给定的默认值将封装在数组中。
1388*@type callable$sanitize_callback清理`$meta_key`数据时要调用的函数或方法。
1389*@type可调用$auth_callback可选。执行edit_post_meta时要调用的函数或方法,
1390*add_post_meta和delete_post_meta功能检查。
1391*@type bool|array$show_in_rest与此元键关联的数据是否可以被视为公共的
1392*应该可以通过REST API访问。自定义帖子类型还必须声明
1393*支持通过REST访问注册元数据的自定义字段。
1394*注册复杂元值时,此参数可以是可选的
1395*使用“schema”或“prepare_callback”键而不是布尔值的数组。
1396*@type bool$revisions_enabled是否为此meta_key启用修订支持。仅当
1397*对象类型为“post”。
1398 * }
1399*@param string | array$已弃用。请改用“$args”。
1400*@return bool如果元键在全局数组中成功注册,则返回True,否则返回false。
1401*使用不同的清理和身份验证回调注册元密钥将触发这些回调,
1402*但不会添加到全局注册表。
1403 */
1404功能 寄存器_元数据( $对象类型, $元键, $个参数, $已弃用 = 无效的 ) {
1405       全球的 $wp_meta_keys;
1406
1407       如果 ( ! 是数组(_A)( $wp_meta_keys ) ) {
1408               $wp_meta_keys = 阵列();
1409       }
1410
1411       $默认值 = 阵列(
1412               '对象子类型'   => '',
1413               “类型”             => “字符串”,
1414               '说明'       => '',
1415               “默认”           => '',
1416               “单个”           => 虚假的,
1417               '清理回调' => 无效的,
1418               '授权回调'     => 无效的,
1419               “show_in_rest”     => 虚假的,
1420               '修订_启用' => 虚假的,
1421       );
1422
1423       //过去有单独的参数用于清理和授权回调。
1424       $has_old_sanitize_cb = 虚假的;
1425       $has_old_auth_cb     = 虚假的;
1426
1427       如果 ( 可调用(_C)( $个参数 ) ) {
1428               $个参数 = 阵列(
1429                       '清理回调' => $个参数,
1430               );
1431
1432               $has_old_sanitize_cb = 真的;
1433       } 其他的 {
1434               $个参数 = (阵列) $个参数;
1435       }
1436
1437       如果 ( 可调用(_C)( $已弃用 ) ) {
1438               $个参数['授权回调'] = $已弃用;
1439               $has_old_auth_cb       = 真的;
1440       }
1441
1442       /**
1443*在注册meta时过滤注册参数。
1444         *
1445*@自4.6.0起
1446         *
1447*@param array$args元注册参数的数组。
1448*@param array$defaults默认参数的数组。
1449*@param string$object_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
1450*或具有关联元表的任何其他对象类型。
1451*@param string$meta_key元键。
1452         */
1453       $个参数 = 应用筛选器( '注册表_元数据_参数', $个参数, $默认值, $对象类型, $meta密钥 );
1454       未设置( $默认值['默认'] );
1455       $个参数 = wp_parse_args( $个参数, $默认值 );
1456
1457       //注册数组元时需要项架构。
1458       如果 ( 虚假的 !== $个参数[“show_in_rest”] && “数组” === $个参数[“类型”] ) {
1459               如果 ( ! 是数组(_A)( $个参数['显示_列表'] ) || ! 发行( $个参数[“show_in_rest”]['架构']['项目'] ) ) {
1460                       _做错了( __功能__, __( '注册要在REST API中显示的“数组”元类型时,必须为“show_in_REST.schema.items”中的每个数组项指定架构。' ), '5.3.0' );
1461
1462                       返回 虚假的;
1463               }
1464       }
1465
1466       $对象_子类型 = ! 空的( $个参数['对象子类型'] ) ? $个参数['对象子类型'] : '';
1467       如果 ( $个参数['修订_启用'] ) {
1468               如果 ( “发布” !== $对象类型 ) {
1469                       _做错了( __函数__, __( “除非对象类型支持修订,否则元键无法启用修订支持。” ), '6.4.0' );
1470
1471                       返回 虚假的;
1472               } 埃尔塞夫 ( ! 空的( $对象_子类型 ) && ! 后类型支持( $对象_子类型, '修订' ) ) {
1473                       _做错了( __功能__, __( “除非对象子类型支持修订,否则元键无法启用修订支持。” ), '6.4.0' );
1474
1475                       返回 虚假的;
1476               }
1477       }
1478
1479       //如果未提供“auth_callback”,请回退到“is_protected_meta()”。
1480       如果 ( 空的( $个参数['授权回调'] ) ) {
1481               如果 ( 受保护的元数据( $元键, $对象类型 ) ) {
1482                       $个参数['授权回调'] = “__return_false”;
1483               } 其他的 {
1484                       $个参数['授权回调'] = “__return_true”;
1485               }
1486       }
1487
1488       //Back-compat:旧的清理和身份验证回调应用于所有对象类型。
1489       如果 ( 可调用(_C)( $个参数['清理回调'] ) ) {
1490               如果 ( ! 空的( $object_子类型 ) ) {
1491                       添加筛选器( “消毒_{$对象类型}_元_{$元键}_的_{$对象_子类型}", $个参数['清理回调'], 10, 4 );
1492               } 其他的 {
1493                       添加筛选器( “消毒_{$对象类型}_元_{$元键}", $args美元['清理回调'], 10,  );
1494               }
1495       }
1496
1497       如果 ( 可调用(_C)( $args美元['授权回调'] ) ) {
1498               如果 ( ! 空的( $对象_子类型 ) ) {
1499                       添加筛选器( “身份验证_{$对象类型}_元_{$元键}_的_{$对象_子类型}", $个参数['授权回调'], 10, 6 );
1500               } 其他的 {
1501                       添加筛选器( “身份验证_{$对象类型}_元_{$meta密钥}", $个参数['授权回调'], 10, 6 );
1502               }
1503       }
1504
1505       如果 ( 数组关键字存在( “默认”, $个参数 ) ) {
1506               $模式 = $个参数;
1507               如果 ( 是数组(_A)( $个参数[“show_in_rest”] ) && 发行( $个参数[“show_in_rest”]['架构'] ) ) {
1508                       $模式 = 数组合并( $模式, $个参数[“show_in_rest”]['架构'] );
1509               }
1510
1511               $支票 = 从模式重置验证值( $个参数[“默认”], $架构 );
1512               如果 ( is_wp_错误( $支票 ) ) {
1513                       _做错了( __功能__, __( '注册默认元数据时,数据必须与提供的类型匹配。' ), '5.5.0' );
1514
1515                       返回 虚假的;
1516               }
1517
1518               如果 ( ! has_filter(有过滤器)( “默认值_{$对象类型}_元数据”, '过滤默认元数据' ) ) {
1519                       添加筛选器( “默认值_{$对象类型}_元数据”, '过滤默认元数据', 10, 5 );
1520               }
1521       }
1522
1523       //全局注册表仅包含使用4.6.0中添加的参数数组注册的元键。
1524       如果 ( ! $has_old_auth_cb && ! $has_old_sanitize_cb ) {
1525               未设置( $个参数['对象子类型'] );
1526
1527               $wp_meta_keys[ $对象类型 ][ $object_子类型 ][ $元键 ] = $个参数;
1528
1529               返回 真的;
1530       }
1531
1532       返回 虚假的;
1533}
1534
1535/**
1536*过滤到default_{$object_type}_metadata并添加默认值。
1537 *
1538*@自5.5.0起
1539 *
1540*@param混合了$value传递给筛选器的当前值。
1541*对象元数据的@param int$object_id id用于。
1542*@param string$meta_key元数据密钥。
1543*@param bool$single如果为true,则只返回指定`$meta_key`的第一个值。
1544*如果未指定`$meta_key`,则此参数无效。
1545*@param string$meta_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
1546*或具有关联元表的任何其他对象类型。
1547*@return mixed如果`$single`为false,则为默认值数组。
1548*如果`$single`为true,则元字段的默认值。
1549 */
1550功能 过滤默认元数据( 价值$, $object_id(对象id), $元键, 单个$, $元类型 ) {
1551       全球的 $wp_meta_keys;
1552
1553       如果 ( wp_安装() ) {
1554               返回 价值$;
1555       }
1556
1557       如果 ( ! 是数组(_A)( $wp_meta_keys ) || ! 发行( $wp_meta_keys[ $元类型 ] ) ) {
1558               返回 美元价值;
1559       }
1560
1561       $默认值 = 阵列();
1562       foreach公司 ( $wp_meta_keys[ $元类型 ] 作为 $子类型 => $元数据 ) {
1563               foreach公司 ( $元数据 作为 $元密钥 => $个参数 ) {
1564                       如果 ( $元密钥 === $元键 && 数组键存在( “默认”, $个参数 ) ) {
1565                               $默认值[ $子类型 ] = $个参数;
1566                       }
1567               }
1568       }
1569
1570       如果 ( ! $默认值 ) {
1571               返回 美元价值;
1572       }
1573
1574       //如果此元类型没有子类型,则默认值被键控为空字符串。
1575       如果 ( isset公司( $默认值[''] ) ) {
1576               $元数据 = $默认值[''];
1577       } 其他的 {
1578               $子类型 = 获取对象子类型( $元类型, $对象id );
1579               如果 ( ! 发行( $默认值[ $子类型 ] ) ) {
1580                       返回 价值$;
1581               }
1582               $元数据 = $默认值[ $子类型 ];
1583       }
1584
1585       如果 ( 单个$ ) {
1586               价值$ = $元数据[“默认”];
1587       } 其他的 {
1588               价值$ = 阵列( $元数据[“默认”] );
1589       }
1590
1591       返回 价值$;
1592}
1593
1594/**
1595*检查元密钥是否已注册。
1596 *
1597*@自4.6.0起
1598*@自4.9.8起添加了`$object_subtype`参数。
1599 *
1600*@param string$object_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
1601*或具有关联元表的任何其他对象类型。
1602*@param string$meta_key元数据密钥。
1603*@param string$object_subtype可选。对象类型的子类型。默认空字符串。
1604*@return bool True,如果元密钥已注册到对象类型,并且如果提供,
1605对象子类型。如果不是,则为False。
1606 */
1607功能 已注册的密钥存在( $对象类型, $元键, $对象_子类型 = '' ) {
1608       $元键 = 获取注册元密钥( $对象类型, $对象_子类型 );
1609
1610       返回 发行( $meta_keys($meta_keys)[ $元键 ] );
1611}
1612
1613/**
1614*从已注册密钥列表中注销元密钥。
1615 *
1616*@自4.6.0起
1617*@自4.9.8起添加了`$object_subtype`参数。
1618 *
1619*@param string$object_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
1620*或具有关联元表的任何其他对象类型。
1621*@param string$meta_key元数据密钥。
1622*@param string$object_subtype可选。对象类型的子类型。默认空字符串。
1623*@return bool如果成功,则返回True。如果未注册元密钥,则为False。
1624 */
1625功能 取消注册元数据密钥( $对象类型, $元键, $object_子类型 = '' ) {
1626       全球的 $wp_meta_keys;
1627
1628       如果 ( ! 已注册的密钥存在( $对象类型, $元键, $对象_子类型 ) ) {
1629               返回 虚假的;
1630       }
1631
1632       $个参数 = $wp_meta_keys[ $对象类型 ][ $对象_子类型 ][ $元键 ];
1633
1634       如果 ( 发行( $个参数['清理回调'] ) && 可调用(_C)( $个参数['消毒_回调'] ) ) {
1635               如果 ( ! 空的( $对象_子类型 ) ) {
1636                       删除过滤器( “消毒_{$对象类型}_元_{$元键}_的_{$对象_子类型}", $个参数['清理回调'] );
1637               } 其他的 {
1638                       删除过滤器( “消毒_{$对象类型}_元_{$元键}", $个参数['清理回调'] );
1639               }
1640       }
1641
1642       如果 ( 发行( $args美元['授权回调'] ) && 可调用(_C)( $args美元['授权回调'] ) ) {
1643               如果 ( ! 空的( $对象_子类型 ) ) {
1644                       删除过滤器( “身份验证_{$对象类型}_元_{$元键}_的_{$对象_子类型}", $个参数['授权回调'] );
1645               } 其他的 {
1646                       删除筛选器(_F)( “身份验证_{$对象类型}_元_{$元键}", $个参数['授权回调'] );
1647               }
1648       }
1649
1650       未设置( $wp_meta_keys[ $对象类型 ][ $对象_子类型 ][ $元键 ] );
1651
1652       //做一些清理工作。
1653       如果 ( 空的( $wp_meta_keys[ $对象类型 ][ $对象_子类型 ] ) ) {
1654               未设置( $wp_meta_keys[ $对象类型 ][ $对象_子类型 ] );
1655       }
1656       如果 ( 空的( $wp_meta_keys[ $对象类型 ] ) ) {
1657               未设置( $wp_meta_keys[ $对象类型 ] );
1658       }
1659
1660       返回 真的;
1661}
1662
1663/**
1664*检索对象类型的已注册元数据参数列表,这些参数由其元键进行键控。
1665 *
1666*@自4.6.0起
1667*@自4.9.8起添加了`$object_subtype`参数。
1668 *
1669*@param string$object_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
1670*或具有关联元表的任何其他对象类型。
1671*@param string$object_subtype可选。对象类型的子类型。默认空字符串。
1672*@return array[]已注册元数据参数的列表,由其元键键控。
1673 */
1674功能 获取注册元密钥( $对象类型, $对象_子类型 = '' ) {
1675       全球的 $wp_meta_keys;
1676
1677       如果 ( ! 是数组(_A)( $wp_meta_keys ) || ! 发行( $wp_meta_keys($wp_meta_keys)[ $对象类型 ] ) || ! 发行( $wp_meta_keys[ $对象类型 ][ $对象_子类型 ] ) ) {
1678               返回 阵列();
1679       }
1680
1681       返回 $wp_meta_keys[ $对象类型 ][ $对象_子类型 ];
1682}
1683
1684/**
1685*检索指定对象的已注册元数据。
1686 *
1687*结果包括专门为
1688*为整个对象类型注册的对象的子类型和元。
1689 *
1690*@自4.6.0起
1691 *
1692*@param string$object_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
1693*或具有关联元表的任何其他对象类型。
1694*@param int$object_id元数据所针对的对象的id。
1695*@param string$meta_key可选。已注册元数据键。如果未指定,则检索所有已注册的
1696指定对象的元数据。
1697*@return mixed如果指定了键的单个值或值数组。所有注册密钥的数组
1698*以及对象ID的值(如果不是)。如果给定的$meta_key未注册,则为False。
1699 */
1700功能 获取注册元数据( $对象类型, $对象id, $元键 = '' ) {
1701       $对象_子类型 = 获取对象子类型( $对象类型, $object_id(对象id) );
1702
1703       如果 ( ! 空的( $元键 ) ) {
1704               如果 ( ! 空的( $对象_子类型 ) && ! 已注册的密钥存在( $对象类型, $元键, $对象_子类型 ) ) {
1705                       $对象_子类型 = '';
1706               }
1707
1708               如果 ( ! 已注册的密钥存在( $对象类型, $元键, $对象_子类型 ) ) {
1709                       返回 虚假的;
1710               }
1711
1712               $元键     = 获取注册元密钥( $对象类型, $对象_子类型 );
1713               $meta_key_data = $元键[ $元键 ];
1714
1715               $数据 = 获取元数据( $对象类型, $对象id, $元键, $meta_key_data[“单个”] );
1716
1717               返回 $数据;
1718       }
1719
1720       $数据 = 获取元数据( $对象类型, $对象id );
1721       如果 ( ! $数据 ) {
1722               返回 阵列();
1723       }
1724
1725       $元键 = 获取注册元密钥( $对象类型 );
1726       如果 ( ! 空的( $对象_子类型 ) ) {
1727               $元键 = 阵列_合并( $元键, 获取注册元密钥( $对象类型, $对象_子类型 ) );
1728       }
1729
1730       返回 数组交叉键( $数据, $元键 );
1731}
1732
1733/**
1734*根据允许的列表筛选出“register_meta()”参数。
1735 *
1736*`register_meta()`args可能会随时间而更改,因此需要允许的列表
1737*明确关闭是一种保修封条。
1738 *
1739*@access私有
1740*@自5.5.0起
1741 *
1742*@param array$args来自`register_meta()`的参数。
1743*@param array$default_args“register_meta()”的默认参数。
1744*@return数组已筛选参数。
1745 */
1746功能 _wp_register_meta_args_allowed列表( $个参数, $default_args(默认值_ args) ) {
1747       返回 数组交叉键( $args美元, $default_args(默认值_ args) );
1748}
1749
1750/**
1751*返回特定类型的给定对象ID的对象子类型。
1752 *
1753*@自4.9.8起
1754 *
1755*@param string$object_type对象元数据的类型适用于。接受“帖子”、“评论”、“术语”、“用户”、,
1756*或具有关联元表的任何其他对象类型。
1757*@param int$object_id要检索其子类型的对象的id。
1758*@return string对象子类型或空字符串(如果未指定子类型)。
1759 */
1760功能 获取对象子类型( $对象类型, $对象id ) {
1761       $对象id     = (整数) $对象id;
1762       $对象_子类型 = '';
1763
1764       转换 ( $对象类型 ) {
1765               案例 “发布”:
1766                       $帖子类型 = 获取发布类型( $object_id(对象id) );
1767
1768                       如果 ( ! 空的( $帖子类型 ) ) {
1769                               $对象_子类型 = $帖子类型;
1770                       }
1771                       打破;
1772
1773               案例 “术语”:
1774                       $术语 = 获取项(_term)( $对象id );
1775                       如果 ( ! $术语 运算符 工作包期限 ) {
1776                               打破;
1777                       }
1778
1779                       $对象_子类型 = $术语->分类学;
1780                       打破;
1781
1782               案例 '评论':
1783                       $条评论 = 获取注释(_C)( $对象id );
1784                       如果 ( ! $条评论 ) {
1785                               打破;
1786                       }
1787
1788                       $对象_子类型 = '评论';
1789                       打破;
1790
1791               案例 “用户”:
1792                       $用户 = 获取用户(_B)( “id”, $对象id );
1793                       如果 ( ! $用户 ) {
1794                               打破;
1795                       }
1796
1797                       $对象_子类型 = “用户”;
1798                       打破;
1799       }
1800
1801       /**
1802*过滤非标准对象类型的对象子类型标识符。
1803         *
1804*钩子名称的动态部分`$object_type`是指元对象类型
1805*(post、comment、term、user或任何其他具有关联元表的类型)。
1806         *
1807*可能的挂钩名称包括:
1808         *
1809*-`get_object_subtype_post`
1810*-`get_object_subtype_comment`
1811*-`get_object_subtype_term`
1812*-`get_object_subtype_user`
1813         *
1814*@自4.9.8起
1815         *
1816*@param string$object_subtype要重写的空字符串。
1817*@param int$object_id要获取其子类型的对象的id。
1818         */
1819       返回 应用筛选器( “获取对象子类型_{$对象类型}", $对象_子类型, $对象id );
1820}
注:请参见Trac浏览器获取有关使用存储库浏览器的帮助。