Current Path: > home > transcarter > public_html > > wp-includes
Operation : Linux host59.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 Software : Apache Server IP : 198.54.126.42 | Your IP: 216.73.216.135 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
ID3 | Directory | - | - | |
IXR | Directory | - | - | |
PHPMailer | Directory | - | - | |
Requests | Directory | - | - | |
SimplePie | Directory | - | - | |
Text | Directory | - | - | |
assets | Directory | - | - | |
block-bindings | Directory | - | - | |
block-patterns | Directory | - | - | |
block-supports | Directory | - | - | |
blocks | Directory | - | - | |
certificates | Directory | - | - | |
css | Directory | - | - | |
customize | Directory | - | - | |
fonts | Directory | - | - | |
html-api | Directory | - | - | |
images | Directory | - | - | |
interactivity-api | Directory | - | - | |
js | Directory | - | - | |
l10n | Directory | - | - | |
php-compat | Directory | - | - | |
pomo | Directory | - | - | |
rest-api | Directory | - | - | |
sitemaps | Directory | - | - | |
sodium_compat | Directory | - | - | |
style-engine | Directory | - | - | |
theme-compat | Directory | - | - | |
widgets | Directory | - | - | |
admin-bar.php | File | 37100 bytes | September 03 2024 19:45:16. | |
atomlib.php | File | 11950 bytes | April 21 2022 10:24:18. | |
author-template.php | File | 18951 bytes | May 14 2023 16:58:24. | |
block-bindings.php | File | 5594 bytes | June 12 2024 11:44:14. | |
block-editor.php | File | 28166 bytes | June 04 2024 10:55:14. | |
block-i18n.json | File | 316 bytes | August 11 2021 08:08:02. | |
block-patterns.php | File | 13162 bytes | February 27 2024 21:05:12. | |
block-template-utils.php | File | 56559 bytes | July 24 2024 13:40:16. | |
block-template.php | File | 12376 bytes | March 06 2024 05:05:12. | |
blocks.php | File | 97472 bytes | June 25 2024 11:45:18. | |
bookmark-template.php | File | 12934 bytes | March 20 2024 11:49:10. | |
bookmark.php | File | 15427 bytes | March 23 2024 13:20:12. | |
cache-compat.php | File | 5969 bytes | October 10 2022 17:22:12. | |
cache.php | File | 13474 bytes | October 10 2022 17:22:12. | |
canonical.php | File | 34513 bytes | February 16 2024 23:34:12. | |
capabilities.php | File | 40016 bytes | May 05 2024 13:35:20. | |
category-template.php | File | 57003 bytes | September 25 2023 23:27:12. | |
category.php | File | 12709 bytes | August 24 2023 08:01:16. | |
class-IXR.php | File | 2543 bytes | February 06 2020 06:33:12. | |
class-avif-info.php | File | 29615 bytes | April 26 2024 14:02:14. | |
class-feed.php | File | 529 bytes | February 06 2020 06:33:12. | |
class-http.php | File | 367 bytes | June 17 2022 10:20:14. | |
class-json.php | File | 43684 bytes | February 03 2023 13:35:20. | |
class-oembed.php | File | 401 bytes | June 17 2022 10:20:14. | |
class-phpass.php | File | 6708 bytes | February 13 2023 09:08:24. | |
class-phpmailer.php | File | 664 bytes | July 21 2020 11:58:02. | |
class-pop3.php | File | 20969 bytes | February 11 2023 12:43:22. | |
class-requests.php | File | 2237 bytes | April 05 2023 12:12:26. | |
class-simplepie-interface.php | File | 1079 bytes | September 12 2022 14:47:14. | |
class-simplepie.php | File | 98061 bytes | February 17 2024 13:25:10. | |
class-smtp.php | File | 457 bytes | January 26 2021 13:45:58. | |
class-snoopy.php | File | 37715 bytes | February 03 2023 13:35:20. | |
class-walker-category-dropdown.php | File | 2469 bytes | September 14 2023 11:46:20. | |
class-walker-category.php | File | 8477 bytes | September 08 2023 08:32:24. | |
class-walker-comment.php | File | 14221 bytes | March 18 2024 14:46:14. | |
class-walker-nav-menu.php | File | 11313 bytes | June 27 2023 14:26:28. | |
class-walker-page-dropdown.php | File | 2710 bytes | September 14 2023 11:46:20. | |
class-walker-page.php | File | 7612 bytes | September 14 2023 11:46:20. | |
class-wp-admin-bar.php | File | 17874 bytes | July 18 2024 15:45:14. | |
class-wp-ajax-response.php | File | 5266 bytes | September 12 2022 14:47:14. | |
class-wp-application-passwords.php | File | 12854 bytes | May 08 2023 21:37:24. | |
class-wp-block-bindings-registry.php | File | 8944 bytes | June 12 2024 11:44:14. | |
class-wp-block-bindings-source.php | File | 2178 bytes | May 02 2024 12:19:14. | |
class-wp-block-editor-context.php | File | 1350 bytes | September 12 2022 14:47:14. | |
class-wp-block-list.php | File | 4757 bytes | November 01 2023 23:04:24. | |
class-wp-block-parser-block.php | File | 2555 bytes | June 26 2023 23:45:38. | |
class-wp-block-parser-frame.php | File | 1916 bytes | June 26 2023 23:45:38. | |
class-wp-block-parser.php | File | 11532 bytes | May 02 2024 19:09:16. | |
class-wp-block-pattern-categories-registry.php | File | 5371 bytes | September 12 2022 14:47:14. | |
class-wp-block-patterns-registry.php | File | 11738 bytes | May 23 2024 17:35:14. | |
class-wp-block-styles-registry.php | File | 6262 bytes | May 30 2024 07:54:08. | |
class-wp-block-supports.php | File | 5566 bytes | May 06 2024 20:25:16. | |
class-wp-block-template.php | File | 1951 bytes | June 23 2023 05:29:24. | |
class-wp-block-type-registry.php | File | 5013 bytes | October 12 2023 11:34:34. | |
class-wp-block-type.php | File | 17265 bytes | May 01 2024 23:01:10. | |
class-wp-block.php | File | 19691 bytes | June 13 2024 07:57:16. | |
class-wp-classic-to-block-menu-converter.php | File | 4088 bytes | August 21 2023 16:51:20. | |
class-wp-comment-query.php | File | 48395 bytes | June 21 2024 16:26:14. | |
class-wp-comment.php | File | 9372 bytes | August 24 2023 07:44:24. | |
class-wp-customize-control.php | File | 25730 bytes | May 14 2024 15:49:10. | |
class-wp-customize-manager.php | File | 202413 bytes | June 10 2024 21:12:18. | |
class-wp-customize-nav-menus.php | File | 57384 bytes | June 03 2024 19:35:14. | |
class-wp-customize-panel.php | File | 10670 bytes | September 10 2023 08:04:18. | |
class-wp-customize-section.php | File | 11244 bytes | September 10 2023 08:04:18. | |
class-wp-customize-setting.php | File | 29889 bytes | September 10 2023 08:04:18. | |
class-wp-customize-widgets.php | File | 71520 bytes | May 14 2024 15:49:10. | |
class-wp-date-query.php | File | 35726 bytes | February 16 2024 21:47:12. | |
class-wp-dependencies.php | File | 14062 bytes | September 08 2023 08:32:24. | |
class-wp-dependency.php | File | 2627 bytes | November 25 2022 15:12:16. | |
class-wp-duotone.php | File | 40783 bytes | June 14 2024 11:18:12. | |
class-wp-editor.php | File | 72177 bytes | June 20 2024 19:27:12. | |
class-wp-embed.php | File | 15994 bytes | July 09 2023 19:17:30. | |
class-wp-error.php | File | 7502 bytes | February 21 2023 16:39:20. | |
class-wp-fatal-error-handler.php | File | 7948 bytes | December 16 2023 09:38:26. | |
class-wp-feed-cache-transient.php | File | 2586 bytes | September 12 2022 14:47:14. | |
class-wp-feed-cache.php | File | 969 bytes | August 10 2023 00:06:22. | |
class-wp-hook.php | File | 16000 bytes | September 18 2023 11:41:18. | |
class-wp-http-cookie.php | File | 7389 bytes | June 24 2023 16:17:24. | |
class-wp-http-curl.php | File | 12541 bytes | September 21 2023 17:29:12. | |
class-wp-http-encoding.php | File | 6689 bytes | June 22 2023 13:57:24. | |
class-wp-http-ixr-client.php | File | 3501 bytes | September 12 2022 14:47:14. | |
class-wp-http-proxy.php | File | 5980 bytes | June 22 2023 13:36:26. | |
class-wp-http-requests-hooks.php | File | 2022 bytes | December 15 2022 21:32:18. | |
class-wp-http-requests-response.php | File | 4400 bytes | October 11 2023 06:05:26. | |
class-wp-http-response.php | File | 2977 bytes | September 12 2022 14:47:14. | |
class-wp-http-streams.php | File | 16859 bytes | September 21 2023 17:29:12. | |
class-wp-http.php | File | 40760 bytes | April 07 2024 10:18:18. | |
class-wp-image-editor-gd.php | File | 18943 bytes | June 03 2024 19:27:12. | |
class-wp-image-editor-imagick.php | File | 32104 bytes | June 14 2024 14:26:10. | |
class-wp-image-editor.php | File | 17606 bytes | February 02 2024 17:48:16. | |
class-wp-list-util.php | File | 7443 bytes | February 27 2024 22:38:16. | |
class-wp-locale-switcher.php | File | 6630 bytes | January 25 2024 07:53:18. | |
class-wp-locale.php | File | 16111 bytes | May 26 2024 19:51:14. | |
class-wp-matchesmapregex.php | File | 1828 bytes | February 06 2024 01:25:14. | |
class-wp-meta-query.php | File | 30531 bytes | April 22 2024 19:25:08. | |
class-wp-metadata-lazyloader.php | File | 6833 bytes | May 11 2023 10:15:24. | |
class-wp-navigation-fallback.php | File | 9211 bytes | October 06 2023 13:06:22. | |
class-wp-network-query.php | File | 19857 bytes | June 21 2024 16:26:14. | |
class-wp-network.php | File | 12288 bytes | May 13 2024 12:34:12. | |
class-wp-object-cache.php | File | 17594 bytes | March 14 2023 15:55:20. | |
class-wp-oembed-controller.php | File | 6905 bytes | March 06 2024 05:05:12. | |
class-wp-oembed.php | File | 31475 bytes | June 07 2024 22:15:16. | |
class-wp-paused-extensions-storage.php | File | 5090 bytes | February 16 2024 21:47:12. | |
class-wp-plugin-dependencies.php | File | 25319 bytes | May 30 2024 14:15:10. | |
class-wp-post-type.php | File | 30350 bytes | May 27 2024 14:24:14. | |
class-wp-post.php | File | 6484 bytes | September 12 2022 14:47:14. | |
class-wp-query.php | File | 154081 bytes | May 20 2024 20:21:16. | |
class-wp-recovery-mode-cookie-service.php | File | 6877 bytes | October 04 2022 02:59:14. | |
class-wp-recovery-mode-email-service.php | File | 11183 bytes | May 02 2023 14:45:22. | |
class-wp-recovery-mode-key-service.php | File | 4601 bytes | December 24 2023 13:05:22. | |
class-wp-recovery-mode-link-service.php | File | 3463 bytes | September 12 2022 14:47:14. | |
class-wp-recovery-mode.php | File | 11435 bytes | May 02 2023 14:45:22. | |
class-wp-rewrite.php | File | 63430 bytes | September 09 2023 08:28:26. | |
class-wp-role.php | File | 2523 bytes | September 08 2023 08:32:24. | |
class-wp-roles.php | File | 8580 bytes | July 28 2023 10:37:26. | |
class-wp-script-modules.php | File | 13755 bytes | May 10 2024 08:09:18. | |
class-wp-scripts.php | File | 27906 bytes | February 05 2024 09:43:12. | |
class-wp-session-tokens.php | File | 7451 bytes | September 12 2022 14:47:14. | |
class-wp-simplepie-file.php | File | 3377 bytes | August 10 2023 00:06:22. | |
class-wp-simplepie-sanitize-kses.php | File | 1770 bytes | August 10 2023 00:06:22. | |
class-wp-site-query.php | File | 31545 bytes | June 21 2024 16:26:14. | |
class-wp-site.php | File | 7454 bytes | September 12 2022 14:47:14. | |
class-wp-styles.php | File | 10898 bytes | May 02 2023 14:45:22. | |
class-wp-tax-query.php | File | 19555 bytes | February 16 2024 21:47:12. | |
class-wp-taxonomy.php | File | 18567 bytes | April 27 2023 22:15:18. | |
class-wp-term-query.php | File | 41166 bytes | March 02 2024 13:38:08. | |
class-wp-term.php | File | 5298 bytes | September 12 2022 14:47:14. | |
class-wp-text-diff-renderer-inline.php | File | 979 bytes | February 14 2024 19:27:10. | |
class-wp-text-diff-renderer-table.php | File | 18807 bytes | October 15 2023 13:55:24. | |
class-wp-textdomain-registry.php | File | 10203 bytes | June 11 2024 13:27:18. | |
class-wp-theme-json-data.php | File | 1809 bytes | June 04 2024 10:55:14. | |
class-wp-theme-json-resolver.php | File | 34714 bytes | June 24 2024 09:33:16. | |
class-wp-theme-json-schema.php | File | 7367 bytes | June 06 2024 07:02:16. | |
class-wp-theme-json.php | File | 157322 bytes | September 04 2024 13:24:14. | |
class-wp-theme.php | File | 65299 bytes | April 19 2024 16:59:16. | |
class-wp-token-map.php | File | 28430 bytes | June 02 2024 14:16:14. | |
class-wp-user-meta-session-tokens.php | File | 2990 bytes | January 09 2019 05:04:50. | |
class-wp-user-query.php | File | 43654 bytes | May 19 2024 18:53:20. | |
class-wp-user-request.php | File | 2222 bytes | September 12 2022 14:47:14. | |
class-wp-user.php | File | 22827 bytes | February 16 2024 21:47:12. | |
class-wp-walker.php | File | 13322 bytes | August 07 2024 18:47:10. | |
class-wp-widget-factory.php | File | 3347 bytes | September 12 2022 14:47:14. | |
class-wp-widget.php | File | 18386 bytes | August 25 2023 00:28:16. | |
class-wp-xmlrpc-server.php | File | 214948 bytes | February 11 2024 19:14:20. | |
class-wp.php | File | 26119 bytes | August 13 2023 09:31:24. | |
class-wpdb.php | File | 118379 bytes | April 04 2024 14:13:14. | |
class.wp-dependencies.php | File | 373 bytes | September 20 2022 13:17:12. | |
class.wp-scripts.php | File | 343 bytes | September 20 2022 13:17:12. | |
class.wp-styles.php | File | 338 bytes | September 20 2022 13:17:12. | |
comment-template.php | File | 101738 bytes | July 18 2024 16:58:16. | |
comment.php | File | 129226 bytes | June 13 2024 12:05:14. | |
compat.php | File | 16467 bytes | July 18 2024 17:22:16. | |
cron.php | File | 41582 bytes | May 02 2024 12:19:14. | |
date.php | File | 400 bytes | June 17 2022 10:20:14. | |
default-constants.php | File | 11238 bytes | April 17 2024 08:46:20. | |
default-filters.php | File | 35490 bytes | June 11 2024 01:40:14. | |
default-widgets.php | File | 2222 bytes | May 25 2021 07:27:58. | |
deprecated.php | File | 186291 bytes | June 04 2024 06:39:10. | |
embed-template-trigger.php | File | 373 bytes | September 12 2022 14:47:14. | |
embed-template.php | File | 338 bytes | June 17 2022 10:20:14. | |
embed.php | File | 37908 bytes | June 02 2024 21:02:16. | |
error-protection.php | File | 4121 bytes | May 02 2023 14:45:22. | |
error_log | File | 795153 bytes | August 07 2025 03:15:23. | |
feed-atom-comments.php | File | 5504 bytes | March 04 2024 12:41:10. | |
feed-atom.php | File | 3048 bytes | November 29 2021 09:52:00. | |
feed-rdf.php | File | 2668 bytes | January 29 2020 00:45:18. | |
feed-rss.php | File | 1189 bytes | January 29 2020 00:45:18. | |
feed-rss2-comments.php | File | 4136 bytes | March 04 2024 12:41:10. | |
feed-rss2.php | File | 3799 bytes | January 29 2020 00:45:18. | |
feed.php | File | 23317 bytes | June 13 2024 19:50:14. | |
fonts.php | File | 9441 bytes | June 05 2024 22:19:18. | |
formatting.php | File | 335374 bytes | June 24 2024 13:42:10. | |
functions.php | File | 280644 bytes | July 18 2024 17:22:16. | |
functions.wp-scripts.php | File | 14558 bytes | May 26 2024 19:51:14. | |
functions.wp-styles.php | File | 8583 bytes | May 26 2024 19:51:14. | |
general-template.php | File | 169119 bytes | June 13 2024 13:48:06. | |
global-styles-and-settings.php | File | 21424 bytes | July 12 2024 19:01:16. | |
http.php | File | 25548 bytes | August 06 2025 04:48:37. | |
https-detection.php | File | 5661 bytes | September 22 2023 18:08:20. | |
https-migration.php | File | 4741 bytes | July 10 2023 21:38:26. | |
kses.php | File | 74389 bytes | June 17 2024 11:04:12. | |
l10n-object.php | File | 38 bytes | June 26 2025 11:42:43. | |
l10n.php | File | 66655 bytes | August 06 2025 04:48:37. | |
link-template.php | File | 156140 bytes | May 27 2024 15:29:16. | |
load.php | File | 55353 bytes | May 10 2024 10:48:16. | |
locale.php | File | 162 bytes | October 08 2019 16:19:04. | |
media-template.php | File | 62218 bytes | July 24 2024 16:32:16. | |
media.php | File | 210542 bytes | August 07 2024 18:43:12. | |
meta.php | File | 64078 bytes | September 26 2023 14:32:20. | |
ms-blogs.php | File | 25728 bytes | March 29 2024 10:42:14. | |
ms-default-constants.php | File | 4921 bytes | June 13 2024 19:50:14. | |
ms-default-filters.php | File | 6636 bytes | February 24 2023 01:23:20. | |
ms-deprecated.php | File | 21759 bytes | April 12 2024 16:47:14. | |
ms-files.php | File | 2711 bytes | August 23 2023 14:53:24. | |
ms-functions.php | File | 91243 bytes | November 13 2023 11:13:28. | |
ms-load.php | File | 19883 bytes | March 25 2024 16:19:18. | |
ms-network.php | File | 3782 bytes | May 02 2023 10:26:24. | |
ms-settings.php | File | 4124 bytes | June 22 2023 13:57:24. | |
ms-site.php | File | 40346 bytes | May 04 2024 18:25:10. | |
nav-menu-template.php | File | 25917 bytes | May 09 2024 14:16:14. | |
nav-menu.php | File | 44145 bytes | May 08 2024 17:37:14. | |
option.php | File | 100442 bytes | June 14 2024 14:21:10. | |
pluggable-deprecated.php | File | 6263 bytes | January 11 2020 18:32:06. | |
pluggable.php | File | 113181 bytes | April 13 2024 15:33:14. | |
plugin.php | File | 35465 bytes | June 08 2023 06:54:22. | |
post-formats.php | File | 7102 bytes | May 27 2024 15:29:16. | |
post-template.php | File | 66814 bytes | June 01 2024 16:37:18. | |
post-thumbnail-template.php | File | 10308 bytes | May 17 2023 17:31:24. | |
post.php | File | 284273 bytes | June 18 2024 13:46:10. | |
query.php | File | 37035 bytes | August 24 2023 08:01:16. | |
registration-functions.php | File | 200 bytes | November 12 2020 11:17:08. | |
registration.php | File | 200 bytes | November 12 2020 11:17:08. | |
rest-api.php | File | 98466 bytes | June 02 2024 21:02:16. | |
revision.php | File | 30906 bytes | May 06 2024 15:35:20. | |
rewrite.php | File | 19514 bytes | July 11 2023 10:15:28. | |
robots-template.php | File | 5185 bytes | April 06 2022 14:33:04. | |
rss-functions.php | File | 255 bytes | November 16 2020 22:52:06. | |
rss.php | File | 23107 bytes | June 13 2024 19:50:14. | |
script-loader.php | File | 130296 bytes | June 13 2024 14:06:08. | |
script-modules.php | File | 5978 bytes | May 26 2024 19:51:14. | |
session.php | File | 258 bytes | February 06 2020 06:33:12. | |
shortcodes.php | File | 24051 bytes | May 25 2024 02:04:12. | |
sitemaps.php | File | 3238 bytes | May 15 2021 16:38:06. | |
spl-autoload-compat.php | File | 441 bytes | November 12 2020 11:17:08. | |
style-engine.php | File | 7563 bytes | May 03 2024 03:47:12. | |
taxonomy.php | File | 175314 bytes | June 18 2024 03:12:12. | |
template-canvas.php | File | 544 bytes | September 30 2023 23:22:28. | |
template-loader.php | File | 3012 bytes | May 26 2020 08:37:10. | |
template.php | File | 24154 bytes | February 21 2024 19:26:08. | |
theme-i18n.json | File | 1245 bytes | June 24 2024 07:51:16. | |
theme-previews.php | File | 2832 bytes | December 08 2023 06:32:24. | |
theme-templates.php | File | 6223 bytes | October 13 2023 16:21:22. | |
theme.json | File | 8704 bytes | June 12 2024 05:11:14. | |
theme.php | File | 133979 bytes | June 13 2024 19:50:14. | |
update.php | File | 36884 bytes | June 13 2024 19:50:14. | |
user.php | File | 173735 bytes | June 05 2024 11:23:10. | |
vars.php | File | 6489 bytes | April 04 2024 12:40:06. | |
version.php | File | 961 bytes | August 06 2025 04:48:37. | |
widgets.php | File | 70682 bytes | May 26 2024 19:51:14. | |
wp-db.php | File | 445 bytes | July 21 2022 21:45:12. | |
wp-diff.php | File | 647 bytes | February 06 2020 06:33:12. |
<?php /** * These functions are needed to load Multisite. * * @since 3.0.0 * * @package WordPress * @subpackage Multisite */ /** * Whether a subdomain configuration is enabled. * * @since 3.0.0 * * @return bool True if subdomain configuration is enabled, false otherwise. */ function is_subdomain_install() { if ( defined( 'SUBDOMAIN_INSTALL' ) ) { return SUBDOMAIN_INSTALL; } return ( defined( 'VHOST' ) && 'yes' === VHOST ); } /** * Returns array of network plugin files to be included in global scope. * * The default directory is wp-content/plugins. To change the default directory * manually, define `WP_PLUGIN_DIR` and `WP_PLUGIN_URL` in `wp-config.php`. * * @access private * @since 3.1.0 * * @return string[] Array of absolute paths to files to include. */ function wp_get_active_network_plugins() { $active_plugins = (array) get_site_option( 'active_sitewide_plugins', array() ); if ( empty( $active_plugins ) ) { return array(); } $plugins = array(); $active_plugins = array_keys( $active_plugins ); sort( $active_plugins ); foreach ( $active_plugins as $plugin ) { if ( ! validate_file( $plugin ) // $plugin must validate as file. && str_ends_with( $plugin, '.php' ) // $plugin must end with '.php'. && file_exists( WP_PLUGIN_DIR . '/' . $plugin ) // $plugin must exist. ) { $plugins[] = WP_PLUGIN_DIR . '/' . $plugin; } } return $plugins; } /** * Checks status of current blog. * * Checks if the blog is deleted, inactive, archived, or spammed. * * Dies with a default message if the blog does not pass the check. * * To change the default message when a blog does not pass the check, * use the wp-content/blog-deleted.php, blog-inactive.php and * blog-suspended.php drop-ins. * * @since 3.0.0 * * @return true|string Returns true on success, or drop-in file to include. */ function ms_site_check() { /** * Filters checking the status of the current blog. * * @since 3.0.0 * * @param bool|null $check Whether to skip the blog status check. Default null. */ $check = apply_filters( 'ms_site_check', null ); if ( null !== $check ) { return true; } // Allow super admins to see blocked sites. if ( is_super_admin() ) { return true; } $blog = get_site(); if ( '1' === $blog->deleted ) { if ( file_exists( WP_CONTENT_DIR . '/blog-deleted.php' ) ) { return WP_CONTENT_DIR . '/blog-deleted.php'; } else { wp_die( __( 'This site is no longer available.' ), '', array( 'response' => 410 ) ); } } if ( '2' === $blog->deleted ) { if ( file_exists( WP_CONTENT_DIR . '/blog-inactive.php' ) ) { return WP_CONTENT_DIR . '/blog-inactive.php'; } else { $admin_email = str_replace( '@', ' AT ', get_site_option( 'admin_email', 'support@' . get_network()->domain ) ); wp_die( sprintf( /* translators: %s: Admin email link. */ __( 'This site has not been activated yet. If you are having problems activating your site, please contact %s.' ), sprintf( '<a href="mailto:%1$s">%1$s</a>', $admin_email ) ) ); } } if ( '1' === $blog->archived || '1' === $blog->spam ) { if ( file_exists( WP_CONTENT_DIR . '/blog-suspended.php' ) ) { return WP_CONTENT_DIR . '/blog-suspended.php'; } else { wp_die( __( 'This site has been archived or suspended.' ), '', array( 'response' => 410 ) ); } } return true; } /** * Retrieves the closest matching network for a domain and path. * * @since 3.9.0 * * @internal In 4.4.0, converted to a wrapper for WP_Network::get_by_path() * * @param string $domain Domain to check. * @param string $path Path to check. * @param int|null $segments Path segments to use. Defaults to null, or the full path. * @return WP_Network|false Network object if successful. False when no network is found. */ function get_network_by_path( $domain, $path, $segments = null ) { return WP_Network::get_by_path( $domain, $path, $segments ); } /** * Retrieves the closest matching site object by its domain and path. * * This will not necessarily return an exact match for a domain and path. Instead, it * breaks the domain and path into pieces that are then used to match the closest * possibility from a query. * * The intent of this method is to match a site object during bootstrap for a * requested site address * * @since 3.9.0 * @since 4.7.0 Updated to always return a `WP_Site` object. * * @param string $domain Domain to check. * @param string $path Path to check. * @param int|null $segments Path segments to use. Defaults to null, or the full path. * @return WP_Site|false Site object if successful. False when no site is found. */ function get_site_by_path( $domain, $path, $segments = null ) { $path_segments = array_filter( explode( '/', trim( $path, '/' ) ) ); /** * Filters the number of path segments to consider when searching for a site. * * @since 3.9.0 * * @param int|null $segments The number of path segments to consider. WordPress by default looks at * one path segment following the network path. The function default of * null only makes sense when you know the requested path should match a site. * @param string $domain The requested domain. * @param string $path The requested path, in full. */ $segments = apply_filters( 'site_by_path_segments_count', $segments, $domain, $path ); if ( null !== $segments && count( $path_segments ) > $segments ) { $path_segments = array_slice( $path_segments, 0, $segments ); } $paths = array(); while ( count( $path_segments ) ) { $paths[] = '/' . implode( '/', $path_segments ) . '/'; array_pop( $path_segments ); } $paths[] = '/'; /** * Determines a site by its domain and path. * * This allows one to short-circuit the default logic, perhaps by * replacing it with a routine that is more optimal for your setup. * * Return null to avoid the short-circuit. Return false if no site * can be found at the requested domain and path. Otherwise, return * a site object. * * @since 3.9.0 * * @param null|false|WP_Site $site Site value to return by path. Default null * to continue retrieving the site. * @param string $domain The requested domain. * @param string $path The requested path, in full. * @param int|null $segments The suggested number of paths to consult. * Default null, meaning the entire path was to be consulted. * @param string[] $paths The paths to search for, based on $path and $segments. */ $pre = apply_filters( 'pre_get_site_by_path', null, $domain, $path, $segments, $paths ); if ( null !== $pre ) { if ( false !== $pre && ! $pre instanceof WP_Site ) { $pre = new WP_Site( $pre ); } return $pre; } /* * @todo * Caching, etc. Consider alternative optimization routes, * perhaps as an opt-in for plugins, rather than using the pre_* filter. * For example: The segments filter can expand or ignore paths. * If persistent caching is enabled, we could query the DB for a path <> '/' * then cache whether we can just always ignore paths. */ /* * Either www or non-www is supported, not both. If a www domain is requested, * query for both to provide the proper redirect. */ $domains = array( $domain ); if ( str_starts_with( $domain, 'www.' ) ) { $domains[] = substr( $domain, 4 ); } $args = array( 'number' => 1, 'update_site_meta_cache' => false, ); if ( count( $domains ) > 1 ) { $args['domain__in'] = $domains; $args['orderby']['domain_length'] = 'DESC'; } else { $args['domain'] = array_shift( $domains ); } if ( count( $paths ) > 1 ) { $args['path__in'] = $paths; $args['orderby']['path_length'] = 'DESC'; } else { $args['path'] = array_shift( $paths ); } $result = get_sites( $args ); $site = array_shift( $result ); if ( $site ) { return $site; } return false; } /** * Identifies the network and site of a requested domain and path and populates the * corresponding network and site global objects as part of the multisite bootstrap process. * * Prior to 4.6.0, this was a procedural block in `ms-settings.php`. It was wrapped into * a function to facilitate unit tests. It should not be used outside of core. * * Usually, it's easier to query the site first, which then declares its network. * In limited situations, we either can or must find the network first. * * If a network and site are found, a `true` response will be returned so that the * request can continue. * * If neither a network or site is found, `false` or a URL string will be returned * so that either an error can be shown or a redirect can occur. * * @since 4.6.0 * @access private * * @global WP_Network $current_site The current network. * @global WP_Site $current_blog The current site. * * @param string $domain The requested domain. * @param string $path The requested path. * @param bool $subdomain Optional. Whether a subdomain (true) or subdirectory (false) configuration. * Default false. * @return bool|string True if bootstrap successfully populated `$current_blog` and `$current_site`. * False if bootstrap could not be properly completed. * Redirect URL if parts exist, but the request as a whole can not be fulfilled. */ function ms_load_current_site_and_network( $domain, $path, $subdomain = false ) { global $current_site, $current_blog; // If the network is defined in wp-config.php, we can simply use that. if ( defined( 'DOMAIN_CURRENT_SITE' ) && defined( 'PATH_CURRENT_SITE' ) ) { $current_site = new stdClass(); $current_site->id = defined( 'SITE_ID_CURRENT_SITE' ) ? SITE_ID_CURRENT_SITE : 1; $current_site->domain = DOMAIN_CURRENT_SITE; $current_site->path = PATH_CURRENT_SITE; if ( defined( 'BLOG_ID_CURRENT_SITE' ) ) { $current_site->blog_id = BLOG_ID_CURRENT_SITE; } elseif ( defined( 'BLOGID_CURRENT_SITE' ) ) { // Deprecated. $current_site->blog_id = BLOGID_CURRENT_SITE; } if ( 0 === strcasecmp( $current_site->domain, $domain ) && 0 === strcasecmp( $current_site->path, $path ) ) { $current_blog = get_site_by_path( $domain, $path ); } elseif ( '/' !== $current_site->path && 0 === strcasecmp( $current_site->domain, $domain ) && 0 === stripos( $path, $current_site->path ) ) { /* * If the current network has a path and also matches the domain and path of the request, * we need to look for a site using the first path segment following the network's path. */ $current_blog = get_site_by_path( $domain, $path, 1 + count( explode( '/', trim( $current_site->path, '/' ) ) ) ); } else { // Otherwise, use the first path segment (as usual). $current_blog = get_site_by_path( $domain, $path, 1 ); } } elseif ( ! $subdomain ) { /* * A "subdomain" installation can be re-interpreted to mean "can support any domain". * If we're not dealing with one of these installations, then the important part is determining * the network first, because we need the network's path to identify any sites. */ $current_site = wp_cache_get( 'current_network', 'site-options' ); if ( ! $current_site ) { // Are there even two networks installed? $networks = get_networks( array( 'number' => 2 ) ); if ( count( $networks ) === 1 ) { $current_site = array_shift( $networks ); wp_cache_add( 'current_network', $current_site, 'site-options' ); } elseif ( empty( $networks ) ) { // A network not found hook should fire here. return false; } } if ( empty( $current_site ) ) { $current_site = WP_Network::get_by_path( $domain, $path, 1 ); } if ( empty( $current_site ) ) { /** * Fires when a network cannot be found based on the requested domain and path. * * At the time of this action, the only recourse is to redirect somewhere * and exit. If you want to declare a particular network, do so earlier. * * @since 4.4.0 * * @param string $domain The domain used to search for a network. * @param string $path The path used to search for a path. */ do_action( 'ms_network_not_found', $domain, $path ); return false; } elseif ( $path === $current_site->path ) { $current_blog = get_site_by_path( $domain, $path ); } else { // Search the network path + one more path segment (on top of the network path). $current_blog = get_site_by_path( $domain, $path, substr_count( $current_site->path, '/' ) ); } } else { // Find the site by the domain and at most the first path segment. $current_blog = get_site_by_path( $domain, $path, 1 ); if ( $current_blog ) { $current_site = WP_Network::get_instance( $current_blog->site_id ? $current_blog->site_id : 1 ); } else { // If you don't have a site with the same domain/path as a network, you're pretty screwed, but: $current_site = WP_Network::get_by_path( $domain, $path, 1 ); } } // The network declared by the site trumps any constants. if ( $current_blog && (int) $current_blog->site_id !== $current_site->id ) { $current_site = WP_Network::get_instance( $current_blog->site_id ); } // No network has been found, bail. if ( empty( $current_site ) ) { /** This action is documented in wp-includes/ms-settings.php */ do_action( 'ms_network_not_found', $domain, $path ); return false; } // During activation of a new subdomain, the requested site does not yet exist. if ( empty( $current_blog ) && wp_installing() ) { $current_blog = new stdClass(); $current_blog->blog_id = 1; $blog_id = 1; $current_blog->public = 1; } // No site has been found, bail. if ( empty( $current_blog ) ) { // We're going to redirect to the network URL, with some possible modifications. $scheme = is_ssl() ? 'https' : 'http'; $destination = "$scheme://{$current_site->domain}{$current_site->path}"; /** * Fires when a network can be determined but a site cannot. * * At the time of this action, the only recourse is to redirect somewhere * and exit. If you want to declare a particular site, do so earlier. * * @since 3.9.0 * * @param WP_Network $current_site The network that had been determined. * @param string $domain The domain used to search for a site. * @param string $path The path used to search for a site. */ do_action( 'ms_site_not_found', $current_site, $domain, $path ); if ( $subdomain && ! defined( 'NOBLOGREDIRECT' ) ) { // For a "subdomain" installation, redirect to the signup form specifically. $destination .= 'wp-signup.php?new=' . str_replace( '.' . $current_site->domain, '', $domain ); } elseif ( $subdomain ) { /* * For a "subdomain" installation, the NOBLOGREDIRECT constant * can be used to avoid a redirect to the signup form. * Using the ms_site_not_found action is preferred to the constant. */ if ( '%siteurl%' !== NOBLOGREDIRECT ) { $destination = NOBLOGREDIRECT; } } elseif ( 0 === strcasecmp( $current_site->domain, $domain ) ) { /* * If the domain we were searching for matches the network's domain, * it's no use redirecting back to ourselves -- it'll cause a loop. * As we couldn't find a site, we're simply not installed. */ return false; } return $destination; } // Figure out the current network's main site. if ( empty( $current_site->blog_id ) ) { $current_site->blog_id = get_main_site_id( $current_site->id ); } return true; } /** * Displays a failure message. * * Used when a blog's tables do not exist. Checks for a missing $wpdb->site table as well. * * @access private * @since 3.0.0 * @since 4.4.0 The `$domain` and `$path` parameters were added. * * @global wpdb $wpdb WordPress database abstraction object. * * @param string $domain The requested domain for the error to reference. * @param string $path The requested path for the error to reference. */ function ms_not_installed( $domain, $path ) { global $wpdb; if ( ! is_admin() ) { dead_db(); } wp_load_translations_early(); $title = __( 'Error establishing a database connection' ); $msg = '<h1>' . $title . '</h1>'; $msg .= '<p>' . __( 'If your site does not display, please contact the owner of this network.' ) . ''; $msg .= ' ' . __( 'If you are the owner of this network please check that your host’s database server is running properly and all tables are error free.' ) . '</p>'; $query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $wpdb->site ) ); if ( ! $wpdb->get_var( $query ) ) { $msg .= '<p>' . sprintf( /* translators: %s: Table name. */ __( '<strong>Database tables are missing.</strong> This means that your host’s database server is not running, WordPress was not installed properly, or someone deleted %s. You really should look at your database now.' ), '<code>' . $wpdb->site . '</code>' ) . '</p>'; } else { $msg .= '<p>' . sprintf( /* translators: 1: Site URL, 2: Table name, 3: Database name. */ __( '<strong>Could not find site %1$s.</strong> Searched for table %2$s in database %3$s. Is that right?' ), '<code>' . rtrim( $domain . $path, '/' ) . '</code>', '<code>' . $wpdb->blogs . '</code>', '<code>' . DB_NAME . '</code>' ) . '</p>'; } $msg .= '<p><strong>' . __( 'What do I do now?' ) . '</strong> '; $msg .= sprintf( /* translators: %s: Documentation URL. */ __( 'Read the <a href="%s" target="_blank">Debugging a WordPress Network</a> article. Some of the suggestions there may help you figure out what went wrong.' ), __( 'https://developer.wordpress.org/advanced-administration/debug/debug-network/' ) ); $msg .= ' ' . __( 'If you are still stuck with this message, then check that your database contains the following tables:' ) . '</p><ul>'; foreach ( $wpdb->tables( 'global' ) as $t => $table ) { if ( 'sitecategories' === $t ) { continue; } $msg .= '<li>' . $table . '</li>'; } $msg .= '</ul>'; wp_die( $msg, $title, array( 'response' => 500 ) ); } /** * This deprecated function formerly set the site_name property of the $current_site object. * * This function simply returns the object, as before. * The bootstrap takes care of setting site_name. * * @access private * @since 3.0.0 * @deprecated 3.9.0 Use get_current_site() instead. * * @param WP_Network $current_site * @return WP_Network */ function get_current_site_name( $current_site ) { _deprecated_function( __FUNCTION__, '3.9.0', 'get_current_site()' ); return $current_site; } /** * This deprecated function managed much of the site and network loading in multisite. * * The current bootstrap code is now responsible for parsing the site and network load as * well as setting the global $current_site object. * * @access private * @since 3.0.0 * @deprecated 3.9.0 * * @global WP_Network $current_site * * @return WP_Network */ function wpmu_current_site() { global $current_site; _deprecated_function( __FUNCTION__, '3.9.0' ); return $current_site; } /** * Retrieves an object containing information about the requested network. * * @since 3.9.0 * @deprecated 4.7.0 Use get_network() * @see get_network() * * @internal In 4.6.0, converted to use get_network() * * @param object|int $network The network's database row or ID. * @return WP_Network|false Object containing network information if found, false if not. */ function wp_get_network( $network ) { _deprecated_function( __FUNCTION__, '4.7.0', 'get_network()' ); $network = get_network( $network ); if ( null === $network ) { return false; } return $network; }
SILENT KILLER Tool