Linux business57.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
LiteSpeed
Server IP : 199.188.201.191 & Your IP : 3.147.59.186
Domains :
Cant Read [ /etc/named.conf ]
User : derozboy
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
home /
derozboy /
svensk-kredit.online /
wp-includes /
Delete
Unzip
Name
Size
Permission
Date
Action
ID3
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
IXR
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
PHPMailer
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
Requests
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
SimplePie
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
Text
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
assets
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
block-bindings
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
block-patterns
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
block-supports
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
blocks
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
certificates
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
css
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
customize
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
fonts
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
html-api
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
images
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
interactivity-api
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
js
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
l10n
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
php-compat
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
pomo
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
rest-api
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
sitemaps
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
sodium_compat
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
style-engine
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
theme-compat
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
widgets
[ DIR ]
drwxr-xr-x
2025-04-24 07:19
.htaccess
518
B
-r-xr-xr-x
2025-04-24 07:19
admin-bar.php
36.09
KB
-rw-r--r--
2025-04-17 00:05
atomlib.php
11.79
KB
-rw-r--r--
2025-02-03 02:19
author-template.php
18.51
KB
-rw-r--r--
2024-06-16 09:04
block-bindings.php
5.46
KB
-rw-r--r--
2025-02-03 02:19
block-editor.php
28.12
KB
-rw-r--r--
2025-04-17 00:05
block-i18n.json
316
B
-rw-r--r--
2024-06-16 09:04
block-patterns.php
12.9
KB
-rw-r--r--
2025-04-17 00:05
block-template-utils.php
60.46
KB
-rw-r--r--
2025-04-17 00:05
block-template.php
15
KB
-rw-r--r--
2025-04-17 00:05
blocks.php
108.29
KB
-rw-r--r--
2025-04-17 00:05
bookmark-template.php
12.47
KB
-rw-r--r--
2025-04-17 00:05
bookmark.php
15.07
KB
-rw-r--r--
2025-02-03 02:19
cache-compat.php
5.83
KB
-rw-r--r--
2024-06-16 09:04
cache.php
13.16
KB
-rw-r--r--
2024-06-16 09:04
canonical.php
33.71
KB
-rw-r--r--
2025-02-03 02:19
capabilities.php
41.72
KB
-rw-r--r--
2025-02-03 02:19
category-template.php
55.67
KB
-rw-r--r--
2024-06-16 09:04
category.php
12.53
KB
-rw-r--r--
2025-04-17 00:05
class-IXR.php
2.55
KB
-rw-r--r--
2025-04-17 00:05
class-avif-info.php
28.92
KB
-rw-r--r--
2024-06-16 09:04
class-feed.php
539
B
-rw-r--r--
2025-02-03 02:19
class-http.php
367
B
-rw-r--r--
2024-06-16 09:04
class-json.php
42.66
KB
-rw-r--r--
2024-06-16 09:04
class-oembed.php
401
B
-rw-r--r--
2024-06-16 09:04
class-phpass.php
6.61
KB
-rw-r--r--
2025-02-03 02:19
class-phpmailer.php
664
B
-rw-r--r--
2024-06-16 09:04
class-pop3.php
20.63
KB
-rw-r--r--
2025-04-17 00:05
class-requests.php
2.18
KB
-rw-r--r--
2024-06-16 09:04
class-simplepie.php
453
B
-rw-r--r--
2025-02-03 02:19
class-smtp.php
457
B
-rw-r--r--
2024-06-16 09:04
class-snoopy.php
36.83
KB
-rw-r--r--
2024-06-16 09:04
class-walker-category-dropdown.php
2.41
KB
-rw-r--r--
2024-06-16 09:04
class-walker-category.php
8.28
KB
-rw-r--r--
2024-06-16 09:04
class-walker-comment.php
13.89
KB
-rw-r--r--
2025-02-03 02:19
class-walker-nav-menu.php
11.76
KB
-rw-r--r--
2025-04-17 00:05
class-walker-page-dropdown.php
2.65
KB
-rw-r--r--
2024-06-16 09:04
class-walker-page.php
7.43
KB
-rw-r--r--
2024-06-16 09:04
class-wp-admin-bar.php
17.46
KB
-rw-r--r--
2025-02-03 02:19
class-wp-ajax-response.php
5.14
KB
-rw-r--r--
2024-06-16 09:04
class-wp-application-passwords.php
16.7
KB
-rw-r--r--
2025-04-17 00:05
class-wp-block-bindings-registry.php
8.26
KB
-rw-r--r--
2025-02-03 02:19
class-wp-block-bindings-source.php
2.92
KB
-rw-r--r--
2025-02-03 02:19
class-wp-block-editor-context.php
1.32
KB
-rw-r--r--
2024-06-16 09:04
class-wp-block-list.php
4.65
KB
-rw-r--r--
2024-06-16 09:04
class-wp-block-metadata-registry.php
11.62
KB
-rw-r--r--
2025-04-17 00:05
class-wp-block-parser-block.php
2.5
KB
-rw-r--r--
2024-06-16 09:04
class-wp-block-parser-frame.php
1.97
KB
-rw-r--r--
2025-02-03 02:19
class-wp-block-parser.php
11.26
KB
-rw-r--r--
2024-06-16 09:04
class-wp-block-pattern-categories-registry.php
5.25
KB
-rw-r--r--
2024-06-16 09:04
class-wp-block-patterns-registry.php
10.53
KB
-rw-r--r--
2025-02-03 02:19
class-wp-block-styles-registry.php
6.25
KB
-rw-r--r--
2025-04-17 00:05
class-wp-block-supports.php
5.49
KB
-rw-r--r--
2025-04-17 00:05
class-wp-block-template.php
1.99
KB
-rw-r--r--
2025-02-03 02:19
class-wp-block-templates-registry.php
7.06
KB
-rw-r--r--
2025-02-11 21:08
class-wp-block-type-registry.php
4.9
KB
-rw-r--r--
2024-06-16 09:04
class-wp-block-type.php
16.86
KB
-rw-r--r--
2025-02-03 02:19
class-wp-block.php
22.5
KB
-rw-r--r--
2025-04-17 00:05
class-wp-classic-to-block-menu-converter.php
3.99
KB
-rw-r--r--
2024-06-16 09:04
class-wp-comment-query.php
47.26
KB
-rw-r--r--
2025-02-03 02:19
class-wp-comment.php
9.22
KB
-rw-r--r--
2025-04-17 00:05
class-wp-customize-control.php
25.25
KB
-rw-r--r--
2025-04-17 00:05
class-wp-customize-manager.php
197.84
KB
-rw-r--r--
2025-04-17 00:05
class-wp-customize-nav-menus.php
56.07
KB
-rw-r--r--
2025-04-17 00:05
class-wp-customize-panel.php
10.46
KB
-rw-r--r--
2025-04-17 00:05
class-wp-customize-section.php
10.95
KB
-rw-r--r--
2025-02-03 02:19
class-wp-customize-setting.php
29.26
KB
-rw-r--r--
2025-04-17 00:05
class-wp-customize-widgets.php
70.52
KB
-rw-r--r--
2025-04-17 00:05
class-wp-date-query.php
34.89
KB
-rw-r--r--
2025-04-17 00:05
class-wp-dependencies.php
14.78
KB
-rw-r--r--
2025-02-03 02:19
class-wp-dependency.php
2.57
KB
-rw-r--r--
2024-06-16 09:04
class-wp-duotone.php
39.83
KB
-rw-r--r--
2025-02-03 02:19
class-wp-editor.php
70.64
KB
-rw-r--r--
2025-04-17 00:05
class-wp-embed.php
15.56
KB
-rw-r--r--
2025-04-17 00:05
class-wp-error.php
7.33
KB
-rw-r--r--
2024-06-16 09:04
class-wp-exception.php
253
B
-rw-r--r--
2024-09-28 04:58
class-wp-fatal-error-handler.php
7.96
KB
-rw-r--r--
2025-02-03 02:19
class-wp-feed-cache-transient.php
3.1
KB
-rw-r--r--
2025-02-03 02:19
class-wp-feed-cache.php
969
B
-rw-r--r--
2025-02-03 02:19
class-wp-hook.php
15.63
KB
-rw-r--r--
2024-06-16 09:04
class-wp-http-cookie.php
7.22
KB
-rw-r--r--
2024-06-16 09:04
class-wp-http-curl.php
12.25
KB
-rw-r--r--
2024-06-16 09:04
class-wp-http-encoding.php
6.53
KB
-rw-r--r--
2024-06-16 09:04
class-wp-http-ixr-client.php
3.42
KB
-rw-r--r--
2024-06-16 09:04
class-wp-http-proxy.php
5.84
KB
-rw-r--r--
2024-06-16 09:04
class-wp-http-requests-hooks.php
1.97
KB
-rw-r--r--
2024-06-16 09:04
class-wp-http-requests-response.php
4.3
KB
-rw-r--r--
2024-06-16 09:04
class-wp-http-response.php
2.91
KB
-rw-r--r--
2024-06-16 09:04
class-wp-http-streams.php
16.46
KB
-rw-r--r--
2024-06-16 09:04
class-wp-http.php
40.6
KB
-rw-r--r--
2025-04-17 00:05
class-wp-image-editor-gd.php
19.69
KB
-rw-r--r--
2025-04-17 00:05
class-wp-image-editor-imagick.php
33.92
KB
-rw-r--r--
2025-04-17 00:05
class-wp-image-editor.php
17.12
KB
-rw-r--r--
2025-04-17 00:05
class-wp-list-util.php
7.27
KB
-rw-r--r--
2024-06-16 09:04
class-wp-locale-switcher.php
6.62
KB
-rw-r--r--
2025-04-17 00:05
class-wp-locale.php
16.49
KB
-rw-r--r--
2025-04-17 00:05
class-wp-matchesmapregex.php
1.79
KB
-rw-r--r--
2024-06-16 09:04
class-wp-meta-query.php
29.82
KB
-rw-r--r--
2025-02-03 02:19
class-wp-metadata-lazyloader.php
6.67
KB
-rw-r--r--
2024-06-16 09:04
class-wp-navigation-fallback.php
9
KB
-rw-r--r--
2024-06-16 09:04
class-wp-network-query.php
19.39
KB
-rw-r--r--
2025-02-03 02:19
class-wp-network.php
12.01
KB
-rw-r--r--
2025-02-03 02:19
class-wp-object-cache.php
17.11
KB
-rw-r--r--
2025-02-03 02:19
class-wp-oembed-controller.php
6.74
KB
-rw-r--r--
2025-02-03 02:19
class-wp-oembed.php
30.91
KB
-rw-r--r--
2025-04-17 00:05
class-wp-paused-extensions-storage.php
4.99
KB
-rw-r--r--
2025-02-03 02:19
class-wp-phpmailer.php
3.71
KB
-rw-r--r--
2025-04-17 00:05
class-wp-plugin-dependencies.php
24.72
KB
-rw-r--r--
2025-04-17 00:05
class-wp-post-type.php
29.96
KB
-rw-r--r--
2025-04-17 00:05
class-wp-post.php
6.34
KB
-rw-r--r--
2025-04-17 00:05
class-wp-query.php
154.32
KB
-rw-r--r--
2025-04-17 00:05
class-wp-recovery-mode-cookie-service.php
6.72
KB
-rw-r--r--
2024-06-16 09:04
class-wp-recovery-mode-email-service.php
10.92
KB
-rw-r--r--
2024-06-16 09:04
class-wp-recovery-mode-key-service.php
4.77
KB
-rw-r--r--
2025-04-17 00:05
class-wp-recovery-mode-link-service.php
3.38
KB
-rw-r--r--
2024-06-16 09:04
class-wp-recovery-mode.php
11.18
KB
-rw-r--r--
2025-04-17 00:05
class-wp-rewrite.php
62.2
KB
-rw-r--r--
2025-02-03 02:19
class-wp-role.php
2.46
KB
-rw-r--r--
2024-06-16 09:04
class-wp-roles.php
8.38
KB
-rw-r--r--
2025-02-03 02:19
class-wp-script-modules.php
19.01
KB
-rw-r--r--
2025-04-17 00:05
class-wp-scripts.php
27.68
KB
-rw-r--r--
2025-02-03 02:19
class-wp-session-tokens.php
7.15
KB
-rw-r--r--
2025-04-17 00:05
class-wp-simplepie-file.php
3.33
KB
-rw-r--r--
2025-02-03 02:19
class-wp-simplepie-sanitize-kses.php
1.87
KB
-rw-r--r--
2025-04-17 00:05
class-wp-site-query.php
30.88
KB
-rw-r--r--
2025-02-03 02:19
class-wp-site.php
7.28
KB
-rw-r--r--
2024-06-16 09:04
class-wp-speculation-rules.php
7.35
KB
-rw-r--r--
2025-04-17 00:05
class-wp-styles.php
10.75
KB
-rw-r--r--
2025-02-03 02:19
class-wp-tax-query.php
19.1
KB
-rw-r--r--
2024-06-16 09:04
class-wp-taxonomy.php
18.12
KB
-rw-r--r--
2025-04-17 00:05
class-wp-term-query.php
39.91
KB
-rw-r--r--
2025-02-03 02:19
class-wp-term.php
5.17
KB
-rw-r--r--
2024-06-16 09:04
class-wp-text-diff-renderer-inline.php
979
B
-rw-r--r--
2024-06-16 09:04
class-wp-text-diff-renderer-table.php
18.44
KB
-rw-r--r--
2025-04-17 00:05
class-wp-textdomain-registry.php
10.24
KB
-rw-r--r--
2025-02-03 02:19
class-wp-theme-json-data.php
1.77
KB
-rw-r--r--
2025-02-03 02:19
class-wp-theme-json-resolver.php
34.9
KB
-rw-r--r--
2025-04-17 00:05
class-wp-theme-json-schema.php
7.19
KB
-rw-r--r--
2025-02-03 02:19
class-wp-theme-json.php
159.71
KB
-rw-r--r--
2025-04-17 00:05
class-wp-theme.php
64.27
KB
-rw-r--r--
2025-04-17 00:05
class-wp-token-map.php
27.95
KB
-rw-r--r--
2024-07-20 09:14
class-wp-url-pattern-prefixer.php
4.69
KB
-rw-r--r--
2025-04-17 00:05
class-wp-user-meta-session-tokens.php
2.92
KB
-rw-r--r--
2024-06-16 09:04
class-wp-user-query.php
42.63
KB
-rw-r--r--
2025-04-17 00:05
class-wp-user-request.php
2.25
KB
-rw-r--r--
2025-04-17 00:05
class-wp-user.php
22.46
KB
-rw-r--r--
2025-04-17 00:05
class-wp-walker.php
13.01
KB
-rw-r--r--
2025-02-03 02:19
class-wp-widget-factory.php
3.27
KB
-rw-r--r--
2024-06-16 09:04
class-wp-widget.php
18
KB
-rw-r--r--
2025-04-17 00:05
class-wp-xmlrpc-server.php
210.39
KB
-rw-r--r--
2025-04-17 00:05
class-wp.php
25.7
KB
-rw-r--r--
2025-04-17 00:05
class-wpdb.php
115.51
KB
-rw-r--r--
2025-04-17 00:05
class.wp-dependencies.php
373
B
-rw-r--r--
2024-06-16 09:04
class.wp-scripts.php
343
B
-rw-r--r--
2024-06-16 09:04
class.wp-styles.php
338
B
-rw-r--r--
2024-06-16 09:04
comment-template.php
100.47
KB
-rw-r--r--
2025-04-17 00:05
comment.php
128.46
KB
-rw-r--r--
2025-04-17 00:05
compat.php
15.99
KB
-rw-r--r--
2025-04-17 00:05
cron.php
41.66
KB
-rw-r--r--
2025-04-17 00:05
date.php
400
B
-rw-r--r--
2024-06-16 09:04
default-constants.php
11.1
KB
-rw-r--r--
2025-02-03 02:19
default-filters.php
35.84
KB
-rw-r--r--
2025-04-17 00:05
default-widgets.php
2.24
KB
-rw-r--r--
2025-04-17 00:05
deprecated.php
187.07
KB
-rw-r--r--
2025-04-17 00:05
embed-template.php
338
B
-rw-r--r--
2024-06-16 09:04
embed.php
37.28
KB
-rw-r--r--
2025-04-17 00:05
error-protection.php
4.02
KB
-rw-r--r--
2024-06-16 09:04
error_log
40.47
KB
-rw-r--r--
2025-04-24 05:10
feed-atom-comments.php
5.38
KB
-rw-r--r--
2024-06-16 09:04
feed-atom.php
3.05
KB
-rw-r--r--
2025-04-17 00:05
feed-rdf.php
2.61
KB
-rw-r--r--
2024-06-16 09:04
feed-rss.php
1.16
KB
-rw-r--r--
2024-06-16 09:04
feed-rss2-comments.php
4.04
KB
-rw-r--r--
2024-06-16 09:04
feed-rss2.php
3.71
KB
-rw-r--r--
2024-06-16 09:04
feed.php
22.86
KB
-rw-r--r--
2025-02-03 02:19
fonts.php
9.52
KB
-rw-r--r--
2025-02-03 02:19
formatting.php
334.24
KB
-rw-r--r--
2025-04-17 00:05
functions.php
280.81
KB
-rw-r--r--
2025-04-17 00:05
functions.wp-scripts.php
14.22
KB
-rw-r--r--
2025-02-03 02:19
functions.wp-styles.php
8.38
KB
-rw-r--r--
2025-02-03 02:19
general-template.php
168.46
KB
-rw-r--r--
2025-04-17 00:05
global-styles-and-settings.php
20.76
KB
-rw-r--r--
2025-04-17 00:05
http.php
24.72
KB
-rw-r--r--
2025-02-03 02:19
https-detection.php
5.72
KB
-rw-r--r--
2025-04-17 00:05
https-migration.php
4.63
KB
-rw-r--r--
2024-06-16 09:04
kses.php
72.73
KB
-rw-r--r--
2025-04-17 00:05
l10n.php
66.92
KB
-rw-r--r--
2025-04-17 00:05
link-template.php
154.1
KB
-rw-r--r--
2025-04-17 00:05
load.php
55.12
KB
-rw-r--r--
2025-04-17 00:05
locale.php
162
B
-rw-r--r--
2024-06-16 09:04
media-template.php
61.58
KB
-rw-r--r--
2025-04-17 00:05
media.php
215.12
KB
-rw-r--r--
2025-04-17 00:05
meta.php
63.71
KB
-rw-r--r--
2025-04-17 00:05
ms-blogs.php
25.24
KB
-rw-r--r--
2025-04-17 00:05
ms-default-constants.php
4.81
KB
-rw-r--r--
2025-02-03 02:19
ms-default-filters.php
6.48
KB
-rw-r--r--
2024-06-16 09:04
ms-deprecated.php
21.25
KB
-rw-r--r--
2025-02-03 02:19
ms-files.php
2.71
KB
-rw-r--r--
2025-04-17 00:05
ms-functions.php
89.44
KB
-rw-r--r--
2025-04-17 00:05
ms-load.php
19.42
KB
-rw-r--r--
2025-02-03 02:19
ms-network.php
3.69
KB
-rw-r--r--
2024-06-16 09:04
ms-settings.php
4.1
KB
-rw-r--r--
2025-04-17 00:05
ms-site.php
40.35
KB
-rw-r--r--
2025-04-17 00:05
nav-menu-template.php
25.38
KB
-rw-r--r--
2025-04-17 00:05
nav-menu.php
43.33
KB
-rw-r--r--
2025-02-03 02:19
option.php
100.65
KB
-rw-r--r--
2025-04-17 00:05
pluggable-deprecated.php
6.18
KB
-rw-r--r--
2025-04-17 00:05
pluggable.php
119.82
KB
-rw-r--r--
2025-04-17 00:05
plugin.php
34.63
KB
-rw-r--r--
2024-06-16 09:04
post-formats.php
6.94
KB
-rw-r--r--
2025-02-03 02:19
post-template.php
67.04
KB
-rw-r--r--
2025-04-17 00:05
post-thumbnail-template.php
10.62
KB
-rw-r--r--
2025-04-17 00:05
post.php
284.88
KB
-rw-r--r--
2025-04-17 00:05
query.php
36.17
KB
-rw-r--r--
2024-06-16 09:04
registration-functions.php
200
B
-rw-r--r--
2024-06-16 09:04
registration.php
200
B
-rw-r--r--
2024-06-16 09:04
rest-api.php
97.91
KB
-rw-r--r--
2025-04-17 00:05
revision.php
30.02
KB
-rw-r--r--
2025-04-17 00:05
revisions.php
6.97
KB
-rw-r--r--
2025-02-11 06:40
rewrite.php
19.08
KB
-rw-r--r--
2025-02-03 02:19
robots-template.php
5.06
KB
-rw-r--r--
2024-06-16 09:04
rss-functions.php
255
B
-rw-r--r--
2024-06-16 09:04
rss.php
22.57
KB
-rw-r--r--
2025-02-03 02:19
script-loader.php
129.5
KB
-rw-r--r--
2025-04-17 00:05
script-modules.php
7.53
KB
-rw-r--r--
2025-02-03 02:19
session.php
258
B
-rw-r--r--
2024-06-16 09:04
shortcodes.php
23.49
KB
-rw-r--r--
2025-02-03 02:19
sitemaps.php
3.16
KB
-rw-r--r--
2024-06-16 09:04
speculative-loading.php
8.36
KB
-rw-r--r--
2025-04-17 00:05
spl-autoload-compat.php
441
B
-rw-r--r--
2024-06-16 09:04
style-engine.php
7.39
KB
-rw-r--r--
2025-02-03 02:19
taxonomy.php
172.1
KB
-rw-r--r--
2025-04-17 00:05
template-canvas.php
544
B
-rw-r--r--
2024-06-16 09:04
template-loader.php
2.94
KB
-rw-r--r--
2024-06-16 09:04
template.php
23.59
KB
-rw-r--r--
2024-06-16 09:04
theme-i18n.json
1.49
KB
-rw-r--r--
2025-04-17 00:05
theme-previews.php
2.77
KB
-rw-r--r--
2024-06-16 09:04
theme-templates.php
6.09
KB
-rw-r--r--
2025-04-17 00:05
theme.json
8.5
KB
-rw-r--r--
2025-02-03 02:19
theme.php
131.16
KB
-rw-r--r--
2025-04-17 00:05
update.php
36.62
KB
-rw-r--r--
2025-04-17 00:05
user.php
171.7
KB
-rw-r--r--
2025-04-17 00:05
vars.php
6.41
KB
-rw-r--r--
2025-04-17 00:05
version.php
1.09
KB
-rw-r--r--
2025-04-17 00:05
widgets.php
69.06
KB
-rw-r--r--
2025-04-17 00:05
wp-blog-header.php
2.73
KB
-r--r--r--
2025-04-22 01:18
wp-cron.php
2.73
KB
-rw-r--r--
2025-04-22 01:18
wp-db.php
445
B
-rw-r--r--
2024-06-16 09:04
wp-diff.php
799
B
-rw-r--r--
2025-04-17 00:05
Save
Rename
<?php /** * Block template loader functions. * * @package WordPress */ /** * Adds necessary hooks to resolve '_wp-find-template' requests. * * @access private * @since 5.9.0 */ function _add_template_loader_filters() { if ( isset( $_GET['_wp-find-template'] ) && current_theme_supports( 'block-templates' ) ) { add_action( 'pre_get_posts', '_resolve_template_for_new_post' ); } } /** * Renders a warning screen for empty block templates. * * @since 6.8.0 * * @param WP_Block_Template $block_template The block template object. * @return string The warning screen HTML. */ function wp_render_empty_block_template_warning( $block_template ) { wp_enqueue_style( 'wp-empty-template-alert' ); return sprintf( /* translators: %1$s: Block template title. %2$s: Empty template warning message. %3$s: Edit template link. %4$s: Edit template button label. */ '<div id="wp-empty-template-alert"> <h2>%1$s</h2> <p>%2$s</p> <a href="%3$s" class="wp-element-button"> %4$s </a> </div>', esc_html( $block_template->title ), __( 'This page is blank because the template is empty. You can reset or customize it in the Site Editor.' ), get_edit_post_link( $block_template->wp_id, 'site-editor' ), __( 'Edit template' ) ); } /** * Finds a block template with equal or higher specificity than a given PHP template file. * * Internally, this communicates the block content that needs to be used by the template canvas through a global variable. * * @since 5.8.0 * @since 6.3.0 Added `$_wp_current_template_id` global for editing of current template directly from the admin bar. * * @global string $_wp_current_template_content * @global string $_wp_current_template_id * * @param string $template Path to the template. See locate_template(). * @param string $type Sanitized filename without extension. * @param string[] $templates A list of template candidates, in descending order of priority. * @return string The path to the Site Editor template canvas file, or the fallback PHP template. */ function locate_block_template( $template, $type, array $templates ) { global $_wp_current_template_content, $_wp_current_template_id; if ( ! current_theme_supports( 'block-templates' ) ) { return $template; } if ( $template ) { /* * locate_template() has found a PHP template at the path specified by $template. * That means that we have a fallback candidate if we cannot find a block template * with higher specificity. * * Thus, before looking for matching block themes, we shorten our list of candidate * templates accordingly. */ // Locate the index of $template (without the theme directory path) in $templates. $relative_template_path = str_replace( array( get_stylesheet_directory() . '/', get_template_directory() . '/' ), '', $template ); $index = array_search( $relative_template_path, $templates, true ); // If the template hierarchy algorithm has successfully located a PHP template file, // we will only consider block templates with higher or equal specificity. $templates = array_slice( $templates, 0, $index + 1 ); } $block_template = resolve_block_template( $type, $templates, $template ); if ( $block_template ) { $_wp_current_template_id = $block_template->id; if ( empty( $block_template->content ) ) { if ( is_user_logged_in() ) { $_wp_current_template_content = wp_render_empty_block_template_warning( $block_template ); } else { if ( $block_template->has_theme_file ) { // Show contents from theme template if user is not logged in. $theme_template = _get_block_template_file( 'wp_template', $block_template->slug ); $_wp_current_template_content = file_get_contents( $theme_template['path'] ); } else { $_wp_current_template_content = $block_template->content; } } } elseif ( ! empty( $block_template->content ) ) { $_wp_current_template_content = $block_template->content; } if ( isset( $_GET['_wp-find-template'] ) ) { wp_send_json_success( $block_template ); } } else { if ( $template ) { return $template; } if ( 'index' === $type ) { if ( isset( $_GET['_wp-find-template'] ) ) { wp_send_json_error( array( 'message' => __( 'No matching template found.' ) ) ); } } else { return ''; // So that the template loader keeps looking for templates. } } // Add hooks for template canvas. // Add viewport meta tag. add_action( 'wp_head', '_block_template_viewport_meta_tag', 0 ); // Render title tag with content, regardless of whether theme has title-tag support. remove_action( 'wp_head', '_wp_render_title_tag', 1 ); // Remove conditional title tag rendering... add_action( 'wp_head', '_block_template_render_title_tag', 1 ); // ...and make it unconditional. // This file will be included instead of the theme's template file. return ABSPATH . WPINC . '/template-canvas.php'; } /** * Returns the correct 'wp_template' to render for the request template type. * * @access private * @since 5.8.0 * @since 5.9.0 Added the `$fallback_template` parameter. * * @param string $template_type The current template type. * @param string[] $template_hierarchy The current template hierarchy, ordered by priority. * @param string $fallback_template A PHP fallback template to use if no matching block template is found. * @return WP_Block_Template|null template A template object, or null if none could be found. */ function resolve_block_template( $template_type, $template_hierarchy, $fallback_template ) { if ( ! $template_type ) { return null; } if ( empty( $template_hierarchy ) ) { $template_hierarchy = array( $template_type ); } $slugs = array_map( '_strip_template_file_suffix', $template_hierarchy ); // Find all potential templates 'wp_template' post matching the hierarchy. $query = array( 'slug__in' => $slugs, ); $templates = get_block_templates( $query ); // Order these templates per slug priority. // Build map of template slugs to their priority in the current hierarchy. $slug_priorities = array_flip( $slugs ); usort( $templates, static function ( $template_a, $template_b ) use ( $slug_priorities ) { return $slug_priorities[ $template_a->slug ] - $slug_priorities[ $template_b->slug ]; } ); $theme_base_path = get_stylesheet_directory() . DIRECTORY_SEPARATOR; $parent_theme_base_path = get_template_directory() . DIRECTORY_SEPARATOR; // Is the active theme a child theme, and is the PHP fallback template part of it? if ( str_starts_with( $fallback_template, $theme_base_path ) && ! str_contains( $fallback_template, $parent_theme_base_path ) ) { $fallback_template_slug = substr( $fallback_template, // Starting position of slug. strpos( $fallback_template, $theme_base_path ) + strlen( $theme_base_path ), // Remove '.php' suffix. -4 ); // Is our candidate block template's slug identical to our PHP fallback template's? if ( count( $templates ) && $fallback_template_slug === $templates[0]->slug && 'theme' === $templates[0]->source ) { // Unfortunately, we cannot trust $templates[0]->theme, since it will always // be set to the active theme's slug by _build_block_template_result_from_file(), // even if the block template is really coming from the active theme's parent. // (The reason for this is that we want it to be associated with the active theme // -- not its parent -- once we edit it and store it to the DB as a wp_template CPT.) // Instead, we use _get_block_template_file() to locate the block template file. $template_file = _get_block_template_file( 'wp_template', $fallback_template_slug ); if ( $template_file && get_template() === $template_file['theme'] ) { // The block template is part of the parent theme, so we // have to give precedence to the child theme's PHP template. array_shift( $templates ); } } } return count( $templates ) ? $templates[0] : null; } /** * Displays title tag with content, regardless of whether theme has title-tag support. * * @access private * @since 5.8.0 * * @see _wp_render_title_tag() */ function _block_template_render_title_tag() { echo '<title>' . wp_get_document_title() . '</title>' . "\n"; } /** * Returns the markup for the current template. * * @access private * @since 5.8.0 * * @global string $_wp_current_template_id * @global string $_wp_current_template_content * @global WP_Embed $wp_embed WordPress Embed object. * @global WP_Query $wp_query WordPress Query object. * * @return string Block template markup. */ function get_the_block_template_html() { global $_wp_current_template_id, $_wp_current_template_content, $wp_embed, $wp_query; if ( ! $_wp_current_template_content ) { if ( is_user_logged_in() ) { return '<h1>' . esc_html__( 'No matching template found' ) . '</h1>'; } return; } $content = $wp_embed->run_shortcode( $_wp_current_template_content ); $content = $wp_embed->autoembed( $content ); $content = shortcode_unautop( $content ); $content = do_shortcode( $content ); /* * Most block themes omit the `core/query` and `core/post-template` blocks in their singular content templates. * While this technically still works since singular content templates are always for only one post, it results in * the main query loop never being entered which causes bugs in core and the plugin ecosystem. * * The workaround below ensures that the loop is started even for those singular templates. The while loop will by * definition only go through a single iteration, i.e. `do_blocks()` is only called once. Additional safeguard * checks are included to ensure the main query loop has not been tampered with and really only encompasses a * single post. * * Even if the block template contained a `core/query` and `core/post-template` block referencing the main query * loop, it would not cause errors since it would use a cloned instance and go through the same loop of a single * post, within the actual main query loop. * * This special logic should be skipped if the current template does not come from the current theme, in which case * it has been injected by a plugin by hijacking the block template loader mechanism. In that case, entirely custom * logic may be applied which is unpredictable and therefore safer to omit this special handling on. */ if ( $_wp_current_template_id && str_starts_with( $_wp_current_template_id, get_stylesheet() . '//' ) && is_singular() && 1 === $wp_query->post_count && have_posts() ) { while ( have_posts() ) { the_post(); $content = do_blocks( $content ); } } else { $content = do_blocks( $content ); } $content = wptexturize( $content ); $content = convert_smilies( $content ); $content = wp_filter_content_tags( $content, 'template' ); $content = str_replace( ']]>', ']]>', $content ); // Wrap block template in .wp-site-blocks to allow for specific descendant styles // (e.g. `.wp-site-blocks > *`). return '<div class="wp-site-blocks">' . $content . '</div>'; } /** * Renders a 'viewport' meta tag. * * This is hooked into {@see 'wp_head'} to decouple its output from the default template canvas. * * @access private * @since 5.8.0 */ function _block_template_viewport_meta_tag() { echo '<meta name="viewport" content="width=device-width, initial-scale=1" />' . "\n"; } /** * Strips .php or .html suffix from template file names. * * @access private * @since 5.8.0 * * @param string $template_file Template file name. * @return string Template file name without extension. */ function _strip_template_file_suffix( $template_file ) { return preg_replace( '/\.(php|html)$/', '', $template_file ); } /** * Removes post details from block context when rendering a block template. * * @access private * @since 5.8.0 * * @param array $context Default context. * * @return array Filtered context. */ function _block_template_render_without_post_block_context( $context ) { /* * When loading a template directly and not through a page that resolves it, * the top-level post ID and type context get set to that of the template. * Templates are just the structure of a site, and they should not be available * as post context because blocks like Post Content would recurse infinitely. */ if ( isset( $context['postType'] ) && 'wp_template' === $context['postType'] ) { unset( $context['postId'] ); unset( $context['postType'] ); } return $context; } /** * Sets the current WP_Query to return auto-draft posts. * * The auto-draft status indicates a new post, so allow the the WP_Query instance to * return an auto-draft post for template resolution when editing a new post. * * @access private * @since 5.9.0 * * @param WP_Query $wp_query Current WP_Query instance, passed by reference. */ function _resolve_template_for_new_post( $wp_query ) { if ( ! $wp_query->is_main_query() ) { return; } remove_filter( 'pre_get_posts', '_resolve_template_for_new_post' ); // Pages. $page_id = isset( $wp_query->query['page_id'] ) ? $wp_query->query['page_id'] : null; // Posts, including custom post types. $p = isset( $wp_query->query['p'] ) ? $wp_query->query['p'] : null; $post_id = $page_id ? $page_id : $p; $post = get_post( $post_id ); if ( $post && 'auto-draft' === $post->post_status && current_user_can( 'edit_post', $post->ID ) ) { $wp_query->set( 'post_status', 'auto-draft' ); } } /** * Register a block template. * * @since 6.7.0 * * @param string $template_name Template name in the form of `plugin_uri//template_name`. * @param array|string $args { * @type string $title Optional. Title of the template as it will be shown in the Site Editor * and other UI elements. * @type string $description Optional. Description of the template as it will be shown in the Site * Editor. * @type string $content Optional. Default content of the template that will be used when the * template is rendered or edited in the editor. * @type string[] $post_types Optional. Array of post types to which the template should be available. * @type string $plugin Optional. Slug of the plugin that registers the template. * } * @return WP_Block_Template|WP_Error The registered template object on success, WP_Error object on failure. */ function register_block_template( $template_name, $args = array() ) { return WP_Block_Templates_Registry::get_instance()->register( $template_name, $args ); } /** * Unregister a block template. * * @since 6.7.0 * * @param string $template_name Template name in the form of `plugin_uri//template_name`. * @return WP_Block_Template|WP_Error The unregistered template object on success, WP_Error object on failure or if the * template doesn't exist. */ function unregister_block_template( $template_name ) { return WP_Block_Templates_Registry::get_instance()->unregister( $template_name ); }