- fixed YouTube link validation

This commit is contained in:
yuriinalivaiko
2023-10-29 19:04:50 +02:00
parent 432645c099
commit b85fe08bc5
3 changed files with 24 additions and 19 deletions
+18 -14
View File
@@ -1918,20 +1918,24 @@ function um_youtube_id_from_url( $url ) {
$url = preg_replace( '/\?si=.*/', '', $url ); // referral attribute.
$pattern =
'%^# Match any youtube URL
(?:https?://)? # Optional scheme. Either http or https
(?:www\.)? # Optional www subdomain
(?: # Group host alternatives
youtu\.be/ # Either youtu.be,
| youtube\.com # or youtube.com
(?: # Group path alternatives
/embed/ # Either /embed/
| /v/ # or /v/
| /watch\?v= # or /watch\?v=
| /shorts/ # or /shorts/ for short videos
) # End path alternatives.
) # End host alternatives.
([\w-]{10,12}) # Allow 10-12 for 11 char youtube id.
'%^ # Match any youtube URL
(?:https?://)? # Optional scheme. Either http or https
(?:www\.)? # Optional www subdomain
(?: # Group host alternatives
youtu\.be/ # Either youtu.be,
| youtube\.com # or youtube.com
(?: # Group path alternatives
/embed/ # Either /embed/
| /v/ # or /v/
| /watch\?v= # or /watch\?v=
| /shorts/ # or /shorts/ for short videos
) # End path alternatives.
) # End host alternatives.
([\w-]{10,12}) # Allow 10-12 for 11 char youtube id.
(?: # Additional parameters
(?:\?|\&)
\w+=[^&$]+
)*
$%x';
$result = preg_match( $pattern, $url, $matches );