وبسایتهای وردپرس بهصورت پیشفرض از URL استاندارد youtube.com استفاده میکنند که حاوی کوکیها است. به دلیل قوانین مختلف مربوط به کوکیها از جمله GDPR، مهم است که بازدیدکنندگان وبسایت شما با هر کوکی موافقت کنند. اگر وبسایتی دارید که ویدیوهای یوتیوب نشان میدهد، ممکن است قوانین خاصی را نقض کنید.
همیشه ایده خوبی است که یک پنجره پذیرش کوکی در وبسایت خود قرار دهید تا بازدیدکنندگان بتوانند کوکیها را قبول یا رد کنند. اما میتوانید کوکیها را از ویدیوهای یوتیوب تعبیهشده نیز حذف کنید.
راهنمای مطالعه:
چگونه ویدئوهای یوتیوب را بدون کوکی جاسازی کنیم
به صورت پیشفرض وقتی یک ویدئو از یوتیوب جاسازی میکنید، آدرس URL برای iFrame به این شکل خواهد بود:
https://www.youtube.com/embed/s6cJO_wpJIY?si=2TMG5BxEtPkdI6uO
با این حال، یوتیوب یک دامنه جایگزین ارائه میدهد که میتوانید از آن برای نمایش ویدئوها بدون کوکی استفاده کنید:
https://www.youtube-nocookie.com/embed/s6cJO_wpJIY?si=2TMG5BxEtPkdI6uO
توجه کنید که آدرس URL تقریباً یکسان است به جز اینکه youtube
را به youtube-nocookie
تغییر دادهایم. با استفاده از دامنه youtube-nocookie شما “حالت حریم خصوصی تقویتشده” را فعال میکنید.
وقتی پریشِنِسمود (حالت حریم خصوصی تقویتشده) در پخشکنندهی جاسازیشدهی یوتیوب فعال باشد:
منبع: https://support.google.com/youtube/answer/171780
- هیچ اطلاعاتی از نمایش ویدئو به حساب شما در یوتیوب فرستاده نمیشود.
- یعنی نمایش ویدئو در این حالت تاثیری روی پیشنهادها یا تاریخچهی شما در یوتیوب اصلی ندارد.
- اگر تبلیغی هم در این حالت پخش شود، غیرشخصیسازیشده خواهد بود.
- یعنی بر اساس علایق یا رفتار شما تنظیم نمیشود.
- نمایش ویدئو در این حالت برای شخصیسازی تبلیغات در سایتها یا اپهای دیگر نیز استفاده نمیشود.
وقتی کوکیهای ویدئوهای یوتیوب را غیرفعال میکنید، تبلیغات و ویدئوهای مرتبط دیگر متناسب با بیننده نخواهد بود. بنابراین، اگر در حال جاسازی ویدئوهای خودتان هستید و جزو برنامه شرکاء یوتیوب میباشید، ممکن است بخواهید کوکیها را حفظ کنید. شخصیسازی تجربه ویدئویی میتواند نرخ کلیک تبلیغات و زمان تماشای ویدئو شما را افزایش دهد. فقط یک یادآوری قبل از حذف آنها!
استفاده از دامنه Youtube-nocookie.com در وردپرس
حالا که میدانیم چگونه ویدیوهای یوتیوب را بدون کوکیها جاسازی کنیم، گام بعدی اصلاح نحوه عملکرد وردپرس است. اضافه کردن ویدیوها در وردپرس معمولاً با لینک دادن مستقیم به ویدیو با استفاده از بلوک ویدیو در گوتنبرگ یا oEmbed ها انجام میشود. اینجا یک نمونه تصویر از بلوک ویدیو گوتنبرگ در حال استفاده است:

وردپرس سپس از URL برای تولید کد تعبیه (مشهور به iFrame) برای سایت زنده استفاده میکند. مشکل این است که وردپرس همیشه از URL youtube.com استفاده میکند و راهی برای تغییر آن به youtube-nocookie.com بدون کد سفارشی وجود ندارد.
امیدوارم که در آینده وردپرس بلاک ویدئوی خود را بهروزرسانی کند تا تنظیم مشابهی ارائه دهد و نیازی به استفاده از کدهای سفارشی برای غیرفعال کردن کوکیها نداشته باشید.
تغییر جاسازیهای یوتیوب در وردپرس
روشهای مختلفی برای تغییر جاسازی ویدیوهای یوتیوب در وردپرس برای جلوگیری از کوکیها وجود دارد. بهترین روش احتمالاً استفاده از embed_oembed_html
است. این هوک خروجی نهایی هر oEmbed در سایت را فیلتر میکند. با استفاده از این هوک میتوانیم اطمینان حاصل کنیم که تمامی ویدیوهای یوتیوب تغییر میکنند، بدون توجه به مکان حضورشان.
در اینجا یک نمونه کد برای استفاده در سایتتان آورده شده است:
/**
* Modify YouTube Embeds to Disable Cookies.
*
* @link https://www.wpexplorer.com/wordpress-youtube-embeds-nocookie/
*/
add_filter( 'embed_oembed_html', function( $html ) {
if ( str_contains( $html, 'youtube.com' ) ) {
$html = str_replace( 'youtube.com', 'youtube-nocookie.com', $html );
}
return $html;
}, 10 );
مهم: قطعه کدهایی که در مقاله ما استفاده میشوند به PHP 8.0+ نیاز دارند زیرا از تابع جدید str_contains() استفاده میکنیم. همچنین فرض میشود که ویدئوها با استفاده از توابع اصلی وردپرس اضافه شدهاند و نه توابع سفارشی قالب یا پلاگین. اگر قطعه کد کار نمیکند، قالبها را تغییر دهید و پلاگینها را غیرفعال کنید تا بتوانید مشکل را پیدا کنید.
تغییر iFrames درونخطی و “همهگیر”
اگر سایتی دارید که به جای استفاده از قابلیت oEmbed پیشفرض وردپرس، کد کامل تعبیه یوتیوب را در پستهای خود قرار میدهید، به تکه کد دیگری نیاز خواهید داشت. کد زیر میتواند به عنوان یک همگی برای جایگزینی youtube.com با youtube-nocookie.com در محتوای پست/صفحه شما استفاده شود.
/**
* Modify the WordPress content output to modify youtube embed urls.
*/
add_filter( 'the_content', function( $content ) {
if ( str_contains( $content, 'youtube.com/embed' ) ) {
$content = str_replace( 'youtube.com/embed', 'youtube-nocookie.com/embed', $content );
}
return $content;
}, 100 );
کد قبلی در محتوای پست شما در نمای جلویی youtube.com/embed
را جستجو کرده و با youtube-nocookie.com/embed
جایگزین میکند. به این ترتیب اگر ویدیوهایی به صورت دستی جاسازی شده باشند، آنها نیز بهروزرسانی خواهند شد.
ممکن است متوجه شده باشید که برای تابع add_filter
از اولویت بالای “100” استفاده کردهام. دلیل این کار این است که کد بعد از اینکه هر گونه شورتکد و بلوکها تجزیه شوند، اجرا میشود. اینگونه، ویدیوهایی که از طریق شورتکدهای سفارشی یا بلوکهای وردپرس اضافه شدهاند نیز کوکیهایشان غیرفعال میشود.
دیدگاه و پرسش