使WordPress成为核心

来源: 标签/6.5/型钢混凝土/wp-管理员/包括/class-wp-ms-users-list-table.php

上次更改时间在这个文件上57111,签入者谢尔盖·比尤科夫,7个月前

文档:修复ms_user_list_site类过滤器描述。

后续行动[44977].

道具nithins53,shailu25,sabernhardt。
修复#59907.

  • 财产svn:eol风格设置为本地的
文件大小: 14.9 KB
线路 
1<?php(电话)
2/**
*列表表API:WP_MS_Users_List_Table类
4 *
5*@软件包WordPress
6*@子包管理
7*@自3.1.0起
8 */
9
10/**
11*核心类用于在网络管理员的列表中显示用户。
12 *
13*@自3.1.0起
14 *
15*@参见WP_List_Table
16 */
17 WP_MS_Users_List_Table(WP_MS_用户列表表) 延伸 WP_列表 {
18       /**
19*@return bool
20         */
21       公众的 功能 ajax用户can() {
22               返回 当前用户can( '管理网络用户' );
23       }
24
25       /**
26*@global string$mode列出表视图模式。
27*@global字符串$usersearch
28*@全局字符串$role
29         */
30       公众的 功能 准备项目() {
31               全球的 $模式, $用户搜索, $角色;
32
33               如果 ( ! 空的( $请求[“模式”] ) ) {
34                       $模式 = '摘录' === $请求['模式'] ? '摘录' : '列表';
35                       设置用户设置( '网络用户列表模式', $模式 );
36               } 其他的 {
37                       $模式 = 获取用户设置( '网络用户列表模式', '列表' );
38               }
39
40               $用户搜索 = 发行( $请求[“s”] ) ? wp_unslash(取消刷新)( 修剪( $请求[“s”] ) ) : '';
41
42               $users_per_page(每个页面) = $这个->获取每个页面的项目( '用户_网络_页面' );
43
44               $角色 = 发行( $请求[“角色”] ) ? $请求[“角色”] : '';
45
46               $页 = $这个->获取代理();
47
48               $个参数 = 阵列(
49                       “数字” => $users_per_page(每个页面),
50                       '偏移' => ( $页 - 1 ) * $用户_页面,
51                       “搜索” => $用户搜索,
52                       '博客id' => 0,
53                       '字段' => '全部包含元数据',
54               );
55
56               如果 ( wp_is_large_n网络( '用户' ) ) {
57                       $个参数[“搜索”] = ltrim公司( $个参数[“搜索”], “*” );
58               } 埃尔塞夫 ( '' !== $个参数[“搜索”] ) {
59                       $个参数[“搜索”] = 修剪( $个参数[“搜索”], '*' );
60                       $个参数[“搜索”] = '*' . $个参数[“搜索”] . '*';
61               }
62
63               如果 ( “超级” === $角色 ) {
64                       $个参数['登录名_in'] = 获取超级管理员();
65               }
66
67               /*
68*如果网络很大,并且没有执行搜索,
69*仅显示没有分页的最新用户,以避免
70*昂贵的计数查询。
71                 */
72               如果 ( ! $用户搜索 && wp_is_large_n网络( '用户' ) ) {
73                       如果 ( ! 发行( $请求['订购'] ) ) {
74                               $_GET(获取)['订购']     = “id”;
75                               $请求['订购'] = “id”;
76                       }
77                       如果 ( ! 发行( $请求[“订单”] ) ) {
78                               $_GET(获取)[“订单”]     = “DESC”;
79                               $请求['订单'] = “DESC”;
80                       }
81                       $个参数['计数总计'] = ;
82               }
83
84               如果 ( 发行( $请求['订购'] ) ) {
85                       $个参数['订购'] = $请求['订购'];
86               }
87
88               如果 ( 发行( $请求[“订单”] ) ) {
89                       $个参数['订单'] = $请求[“订单”];
90               }
91
92               /**该过滤器记录在wp-admin/includes/class-wp-users-list-table.php中*/
93               $个参数 = 应用筛选器( '用户列表表查询参数', $个参数 );
94
95               //查询此页面的用户ID。
96               $wp_user_search = 新的 WP_用户_查询( $个参数 );
97
98               $这个->项目 = $wp_user_search->获取结果();
99
100               $这个->设置页面参数(
101                       阵列(
102                               “total_items” => $wp_user_search->获取总计(),
103                               '每页(_P)'   => $users_per_page(每个页面),
104                       )
105               );
106       }
107
108       /**
109*@返回数组
110         */
111       受保护的 功能 获取bulk_actions() {
112               $个操作 = 阵列();
113               如果 ( 当前用户can( '删除用户' ) ) {
114                       $个操作['删除'] = __( '删除' );
115               }
116               $个操作[“垃圾邮件”]   = _x个( '标记为垃圾邮件', '用户' );
117               $个操作[“非垃圾邮件”] = _x个( '非垃圾邮件', “用户” );
118
119               返回 $个操作;
120       }
121
122       /**
123         */
124       公众的 功能 无项目(_I)() {
125               _e(电子)( “未找到用户。” );
126       }
127
128       /**
129*@全局字符串$role
130*@return数组
131         */
132       受保护的 功能 获取视图(_V)() {
133               全球的 $角色;
134
135               $total_users个 = 获取用户计数();
136               $超级管理员 = 获取超级管理员();
137               $total_admins(总计_管理员) = 计数( $超级管理员 );
138
139               $角色链接       = 阵列();
140               $角色链接[“全部”] = 阵列(
141                       “url”     => 网络管理员url( '用户.php' ),
142                       '标签'   => 把格式数据写成串(
143                               /*转换器:用户数*/
144                               _nx(纳克斯)(
145                                       '所有<span class=“count”>(%s)</span>',
146                                       '所有<span class=“count”>(%s)</span>',
147                                       $total_users个,
148                                       '用户'
149                               ),
150                               数字格式i18n( $total_users个 )
151                       ),
152                       “当前” => “超级” !== $角色,
153               );
154
155               $角色链接[“超级”] = 阵列(
156                       “url”     => 网络管理员url( “users.php?角色=超级' ),
157                       '标签'   => 把格式数据写成串(
158                               /*转换器:用户数*/
159                               _n个(
160                                       '超级管理员(%s),
161                                       '超级管理员(%s),
162                                       $total_admins(总计_管理员)
163                               ),
164                               编号_格式_i18n( $total_admins(总计_管理员) )
165                       ),
166                       “当前” => “超级” === $角色,
167               );
168
169               返回 $这个->获取视图链接( $角色链接 );
170       }
171
172       /**
173*@global string$mode列出表视图模式。
174         *
175*@param string$其中
176         */
177       受保护的 功能 分页( $其中 ) {
178               全球的 $模式;
179
180               起源::分页( $其中 );
181
182               如果 ( “顶部” === $其中 ) {
183                       $这个->视图开关(_S)( $模式 );
184               }
185       }
186
187       /**
188*@return string[]按列名键入的列标题数组。
189         */
190       公众的 功能 获取列() {
191               $users_columns($users_columns) = 阵列(
192                       “cb”         => '<input type=“checkbox”/>',
193                       '用户名'   => __( '用户名' ),
194                       “名称”       => __( “名称” ),
195                       '电子邮件'     => __( '电子邮件' ),
196                       “已注册” => _x个( '已注册', “用户” ),
197                       “博客”     => __( “站点” ),
198               );
199               /**
200*过滤“网络管理员用户”列表中显示的列。
201                 *
202*@自MU(3.0.0)起
203                 *
204*@param string[]$users_columns用户列的数组。默认“cb”,“username”,
205*“name”、“email”、“registered”、“blogs”。
206                 */
207               返回 应用筛选器( 'wpmu_users_columns', $users_columns($users_columns) );
208       }
209
210       /**
211*@返回数组
212         */
213       受保护的 功能 获取可移植列() {
214               返回 阵列(
215                       '用户名'   => 阵列( '登录', , __( '用户名' ), __( '按用户名排序的表' ), “asc” ),
216                       “名称”       => 阵列( “名称”, , __( “名称” ), __( '按名称排序的表' ) ),
217                       '电子邮件'     => 阵列( '电子邮件', , __( '电子邮件' ), __( '通过电子邮件订购表格。' ) ),
218                       “已注册” => 阵列( “id”, , _x个( “已注册”, “用户” ), __( '表按用户注册日期排序' ) ),
219               );
220       }
221
222       /**
223*处理复选框列输出。
224         *
225*@自4.3.0起
226*@since 5.9.0将`$user`重命名为`$item`,以匹配PHP 8命名参数支持的父类。
227         *
228*@param WP_User$item当前的WP_User对象。
229*/
230       公众的 功能 列_cb( $项 ) {
231               //还原此方法中使用的更具描述性的特定名称。
232               $用户 = $项;
233
234               如果 ( 是超级管理员( $用户->身份证件 ) ) {
235                       返回;
236               }
237               ?>
238<input type=“checkbox”id=“博客_<?php(电话) 回声 $用户->身份证件; ?>“name=”allusers[]“value=”<?php(电话) 回声 esc属性( $用户->身份证件 ); ?>" />
239<label for=“博客_<?php(电话) 回声 $用户->身份证件; ?>">
240<span class=“屏幕阅读器文本”>
241                       <?php(电话)
242                       /*转换器:隐藏的辅助功能文本。%s: 用户登录*/
243                       打印( __( '选择%s' ), $用户->用户登录名 );
244                       ?>
245</span>
246</label>
247               <?php(电话)
248       }
249
250       /**
251*处理ID列输出。
252         *
253*@自4.4.0起
254         *
255*@param WP_User$User当前的WP_User对象。
256         */
257       公众的 功能 列id( $用户 ) {
258               回声 $用户->身份证件;
259       }
260
261       /**
262*处理用户名列输出。
263         *
264*@自4.3.0起
265*
266*@param WP_User$User当前的WP_User对象。
267         */
268       公众的 功能 列_用户名( $用户 ) {
269               $超级管理员 = 获取超级管理员();
270               $化身       = 获取增值税( $用户->用户电子邮件(_E), 32 );
271
272               回声 $化身;
273
274               如果 ( 当前用户can( '编辑用户', $用户->身份证件 ) ) {
275                       $edit_link(编辑链接) = esc_url(_U)( 添加查询参数( “wp_http_referer”, 电流码( wp_unslash(取消刷新)( $_服务器['请求(_URI)'] ) ), 获取编辑用户链接( $用户->身份证件 ) ) );
276                       $编辑     = “<a href=\”{$edit_link(编辑链接)}\”>{$用户->用户登录名}</a>“;
277               } 其他的 {
278                       $edit(编辑美元) = $用户->用户登录名;
279               }
280
281               ?>
282<强>
283                       <?php(电话)
284                       回声 $编辑;
285
286                       如果 ( 阵列中(_A)( $用户->用户登录名, $超级管理员, 真的 ) ) {
287                               回声 “&mdash;” . __( “超级管理员” );
288                       }
289                       ?>
290</strong>
291               <?php(电话)
292       }
293
294       /**
295*处理名称列输出。
296         *
297*@自4.3.0起
298         *
299*@param WP_User$User当前的WP_User对象。
300*/
301       公众的 功能 列名称( $用户 ) {
302               如果 ( $用户->第一个名称 && $用户->last_name(姓氏) ) {
303                       打印(
304                               /*翻译:1:用户的名字,2:姓氏*/
305                               _x个( “%1$s%2$s”, '根据名字和姓氏显示名称' ),
306                               $用户->第一个名称,
307                               $用户->last_name(姓氏)
308                       );
309               } 埃尔塞夫 ( $用户->第一个名称 ) {
310                       回声 $用户->第一个名称;
311               } 埃尔塞夫 ( $用户->last_name(姓氏) ) {
312                       回声 $用户->last_name(姓氏);
313               } 其他的 {
314                       回声 '<span aria-hidden=“true”>&#8212</span>' .
315                               /*翻译器:隐藏的辅助功能文本*/
316                               _x个( “未知”, “名称” ) .
317                       “</span>”;
318               }
319       }
320
321       /**
322*处理电子邮件列输出。
323         *
324*@自4.3.0起
325*
326*@param WP_User$User当前的WP_User对象。
327         */
328       公众的 功能 专栏电子邮件(_E)( $用户 ) {
329               回声 “<a href='” . esc_url( “”发送至:“$user->user_email" ) . "'>$user->user_email</a>“;
330       }
331
332       /**
333*处理注册的日期列输出。
334         *
335*@自4.3.0起
336         *
337*@global string$mode列出表视图模式。
338         *
339*@param WP_User$User当前的WP_User对象。
340         */
341       公众的 功能 列已注册( $用户 ) {
342               全球的 $模式;
343               如果 ( '列表' === $模式 ) {
344                       $日期 = __( “是/米/天” );
345               } 其他的 {
346                       $日期 = __( “Y/m/d g:i:s a” );
347               }
348               回声 mysql2日期( $日期, $用户->用户已注册 );
349       }
350
351       /**
352*@自4.3.0起
353         *
354*@param WP_User$User
355*@param字符串$classes
356*@param字符串$data
357*@param字符串$primary
358         */
359       受保护的 功能 _列日志(_B)( $用户, $类, $数据, $主要 ) {
360               回声 '<td class=“', $类, “has-row-actions”, $数据, '>';
361               回声 $这个->列日志(_B)( $用户 );
362               回声 $这个->handle_row_actions操作( $用户, “博客”, $主要 );
363               回声 “</td>”;
364       }
365
366       /**
367*处理站点列输出。
368         *
369*@自4.3.0起
370         *
371*@param WP_User$User当前的WP_User对象。
372         */
373       公众的 功能 列日志(_B)( $用户 ) {
374               $个博客 = 获取用户日志( $用户->身份证件, 真的 );
375               如果 ( ! 是数组(_A)( $个博客 ) ) {
376                       返回;
377               }
378
379               前臂 ( $个博客 作为 $站点 ) {
380                       如果 ( ! can_edit_network(编辑网络)( $站点->站点id ) ) {
381                               持续;
382                       }
383
384                       $路径         = ( '/' === $站点->路径 ) ? '' : $站点->路径;
385                       $站点类 = 阵列( '站点-' . $站点->站点id );
386
387                       /**
388*过滤多站点用户列表表上站点列表的span类。
389                         *
390*@自5.2.0起
391                         *
392*@param string[]$site_classes span标记中使用的类名数组。
393*使用站点的网络ID默认“site-#”。
394*@param int$site_id站点id。
395*@param int$network_id网络id。
396*@param WP_User$用户WP_User对象。
397                         */
398                       $站点类别 = 应用筛选器( “ms_user_list_site_class”, $站点类, $站点->用户博客id, $站点->站点id, $用户 );
399
400                       如果 ( 是数组(_A)( $站点类 ) && ! 空的( $站点类 ) ) {
401                               $站点类 = 阵列映射( '清理html_class', 阵列唯一( $站点类 ) );
402                               回声 '<span class=“' . esc属性( 内爆( ' ', $站点类 ) ) . '">';
403                       } 其他的 {
404                               回声 “<span>”;
405                       }
406
407                       回声 '<a href=“' . esc_url( 网络管理员url( '网站信息.php?id=' . $站点->用户博客id ) ) . '">' . str_替换( '.' . 获取网络(_N)()->领域, '', $站点->领域 . $路径 ) . “</a>”;
408                       回声 '<small class=“row-actions”>';
409
410                       $个操作         = 阵列();
411                       $个操作['编辑'] = '<a href=“' . esc_url( 网络管理员url( “site-info.php?”?id=' . $站点->用户博客id ) ) . '“>' . __( '编辑' ) . “</a>”;
412
413                       $类 = '';
414                       如果 ( 1 === (整数) $站点->垃圾邮件 ) {
415                               $类 .= '网站垃圾邮件';
416                       }
417                       如果 ( 1 === (整数) $站点->成熟 ) {
418                               $类 .= '网站现状';
419                       }
420                       如果 ( 1 === (整数) $站点->删除 ) {
421                               $类 .= '网站已删除';
422                       }
423                       如果 ( 1 === (整数) $站点->已存档 ) {
424                               $类 .= '网站存档';
425                       }
426
427                       $个操作['视图'] = '<a class=“' . $类 . '“href=”' . esc_url( 获取主页url( $站点->用户博客id ) ) . '“>' . __( '视图' ) . “</a>”;
428
429                       /**
430*过滤用户所属站点旁边显示的操作链接
431*在“网络管理员用户”列表中。
432                         *
433*@自3.1.0起
434                         *
435*@param string[]$actions要显示的操作链接数组。默认为“编辑”、“查看”。
436*@param int$userblog_id站点id。
437                         */
438                       $个操作 = 应用筛选器( “ms_user_list_site_actions”, $动作, $站点->用户博客id );
439
440                       $操作计数 = 计数( $个操作 );
441
442                       1美元 = 0;
443
444                       前臂 ( $个操作 作为 $操作 => $链接 ) {
445                               ++1美元;
446
447                               $分隔符 = ( 1美元 < $操作计数 ) ? ' | ' : '';
448
449                               回声 “<span class='$操作'>{$链接}{$分隔符}</span>“;
450                       }
451
452                       回声 '</small></span><br/>';
453               }
454       }
455
456       /**
457*处理默认列输出。
458         *
459*@自4.3.0起
460*@since 5.9.0将`$user`重命名为`$item`,以匹配PHP 8命名参数支持的父类。
461         *
462*@param WP_User$item当前的WP_User对象。
463*@param string$column_name当前列名。
464         */
465       公众的 功能 列_错误( $项, $列名称 ) {
466               //还原此方法中使用的更具描述性的特定名称。
467               $用户 = $项;
468
469               /**该过滤器记录在wp-admin/includes/class-wp-users-list-table.php中*/
470               回声 应用筛选器( '管理用户自定义列', '', $列名称, $用户->身份证件 );
471       }
472
473       公众的 功能 显示_行() {
474               前臂 ( $这个->项目 作为 $用户 ) {
475                       $类 = '';
476
477                       $状态列表 = 阵列(
478                               “垃圾邮件”   => '网站垃圾邮件',
479                               '已删除' => '网站已删除',
480                       );
481
482                       前臂 ( $状态列表 作为 $状态 => $科尔 ) {
483                               如果 ( $用户->$状态 ) {
484                                       $类 .= "$科尔";
485                               }
486                       }
487
488                       ?>
489<tr class=“<?php(电话) 回声 修剪( $类 ); ?>">
490                               <?php(电话) $这个->单列( $用户 ); ?>
491</tr>
492                       <?php(电话)
493               }
494       }
495
496       /**
497*获取默认主列的名称。
498*
499*@自4.3.0起
500         *
501*@return string默认主列的名称,在本例中为“用户名”。
502         */
503       受保护的 功能 获取默认主列名称() {
504               返回 '用户名';
505       }
506
507       /**
508*生成并显示行操作链接。
509         *
510*@自4.3.0起
511*@since 5.9.0将`$user`重命名为`$item`,以匹配PHP 8命名参数支持的父类。
512         *
513*@param WP_User$item正在对用户进行操作。
514*@param string$column_name当前列名。
515*@param string$primary主列名。
516*@return string多站点中用户的行操作输出,或空字符串
517*如果当前列不是主列。
518         */
519       受保护的 功能 handle_row_actions操作( $项, $列名称, $主要 ) {
520               如果 ( $主要 !== $列名称 ) {
521                       返回 '';
522               }
523
524               //还原此方法中使用的更具描述性的特定名称。
525               $用户 = $项;
526
527               $超级管理员 = 获取超级_分钟();
528               $个操作     = 阵列();
529
530               如果 ( 当前用户can( '编辑用户', $用户->身份证件 ) ) {
531                       $edit_link(编辑链接)       = esc_url( 添加查询参数( “wp_http_referer”, 电流码( wp_unslash(取消刷新)( $_服务器['请求(_URI)'] ) ), 获取编辑用户链接( $用户->身份证件 ) ) );
532                       $个操作['编辑'] = '<a href=“' . $edit_link(编辑链接) . '“>' . __( '编辑' ) . “</a>”;
533               }
534
535               如果 ( 当前用户can( '删除用户', $用户->身份证件 ) && ! 阵列中(_A)( $用户->用户登录名, $超级管理员, 真的 ) ) {
536                       $个操作['删除'] = '<a href=“' . esc_url( 网络管理员url( 添加查询参数( '_wp_http_referer', 电流码( wp_unslash(取消刷新)( $_服务器['请求(_URI)'] ) ), wp_nonce_url( '用户.php', '删除用户' ) . '(&amp;);action=删除用户&amp;id=' . $用户->身份证件 ) ) ) . '“class=”delete“>' . __( '删除' ) . '</a>';
537               }
538
539               /**
540*过滤“网络管理员用户”列表中每个用户下显示的操作链接。
541                 *
542*@自3.2.0起
543                 *
544*@param string[]$actions要显示的操作链接数组。默认为“编辑”、“删除”。
545*@param WP_User$用户WP_User对象。
546                 */
547               $个操作 = 应用筛选器( “ms_user_row_actions”, $个操作, $用户 );
548
549               返回 $这个->行操作(_A)( $个操作 );
550       }
551}
注:请参见Trac浏览器获取有关使用存储库浏览器的帮助。