
به اشتراک بگذارید
آموزش وردپرس | بلاگ وبداده
افزودن iFrame به صفحات وردپرس؛ از بلوک HTML تا شورتکد
- iFrame چیست: یک عنصر HTML که یک صفحهٔ وب دیگر را مثل پنجرهای درون صفحهٔ شما نمایش میدهد.
- روش بدون افزونه: کد iframe را داخل بلوک «HTML سفارشی» ویرایشگر بلوکی قرار دهید.
- روش افزونه: با افزونههایی مثل iframe یا Advanced iFrame و یک شورتکد ساده جاسازی کنید.
- روش کد: با
add_shortcodeدر functions.php یک شورتکد امن و قابل استفادهٔ مجدد بسازید. - نکتهٔ صادقانه: فقط از منابع مورد اعتماد جاسازی کنید و بدانید بعضی سایتها اجازهٔ نمایش در iframe را نمیدهند.
در یک جمله
افزودن iFrame در وردپرس چیست و چه کاربردی دارد؟
نکتهٔ کلیدی

روشهای افزودن iframe به صفحات و نوشتههای وردپرس (گامبهگام)
روش اول: بلوک HTML سفارشی (بدون افزونه)
<!-- این کد را داخل بلوک «HTML سفارشی» (Custom HTML) قرار دهید -->
<div class="wd-iframe-wrap">
<iframe
src="https://example.com/embed-page"
title="نمونه محتوای جاسازیشده در وردپرس"
loading="lazy"
referrerpolicy="no-referrer-when-downgrade"
sandbox="allow-scripts allow-same-origin allow-popups"
allowfullscreen>
</iframe>
</div>HTML/* iframe واکنشگرا با نسبت تصویر 16:9 — در Additional CSS یا استایل قالب */
.wd-iframe-wrap {
position: relative;
width: 100%;
aspect-ratio: 16 / 9; /* مرورگرهای جدید */
overflow: hidden;
border-radius: 10px;
}
.wd-iframe-wrap iframe {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
border: 0; /* جایگزین frameborder منسوخ */
}CSSچه کسی مجوز ذخیرهٔ iframe را دارد؟
روش دوم: استفاده از افزونهٔ آمادهٔ iframe
[iframe src="https://example.com" width="100%" height="450"]. افزونهٔ Advanced iFrame امکانات بیشتری مثل کد امنیتی برای جلوگیری از جاسازی توسط دیگران، استایلدهی و مدیریت خطا دارد و برای موارد حرفهایتر مناسب است.افزونهٔ کمتر، بهتر
روش سوم: ساخت شورتکد اختصاصی در functions.php
add_shortcode یک شورتکد تعریف میکنیم که آدرس، عرض، ارتفاع و عنوان میگیرد و خروجی را با توابع امنیتی esc_url و esc_attr پاکسازیشده تحویل میدهد. کد زیر را در functions.php قالب فرزند یا افزونهٔ Code Snippets قرار دهید:// شورتکد سفارشی iframe برای وردپرس
// این کد را در functions.php قالب فرزند یا افزونه Code Snippets قرار دهید
function webdade_iframe_shortcode( $atts ) {
$a = shortcode_atts( array(
'src' => '',
'width' => '100%',
'height' => '450',
'title' => 'محتوای جاسازیشده',
), $atts );
if ( empty( $a['src'] ) ) {
return ''; // بدون آدرس، چیزی نمایش داده نمیشود
}
return sprintf(
'<iframe src="%s" width="%s" height="%s" title="%s" loading="lazy" style="border:0;max-width:100%%;" allowfullscreen></iframe>',
esc_url( $a['src'] ),
esc_attr( $a['width'] ),
esc_attr( $a['height'] ),
esc_attr( $a['title'] )
);
}
add_shortcode( 'webdade_iframe', 'webdade_iframe_shortcode' );
// استفاده در نوشته/برگه:
// [webdade_iframe src="https://example.com" height="500"]PHP[webdade_iframe src="..."] را بنویسید تا iframe امن ساخته شود. روشهای امن افزودن این نوع کد را در راهنمای درج کد در برگه و نوشتههای وردپرس کامل توضیح دادهایم.هشدار: ویرایش نادرست functions.php سایت را از کار میاندازد

| روش | نیاز به کد | نیاز به افزونه | مناسبِ چه کسی |
|---|---|---|---|
| بلوک HTML سفارشی | کمی (چسباندن کد) | خیر | مبتدی، جاسازی موردی |
| افزونهٔ iframe / Advanced iFrame | خیر (شورتکد) | بله | کاربرانِ بدون کد، امکانات بیشتر |
| شورتکد سفارشی functions.php | بله (یکبار) | خیر | کاربر حرفهای، استفادهٔ مکرر |
معایب، نکات امنیتی و عیبیابی iframe
- ریسک امنیتی منبع نامعتبر: جاسازی از سایتهای ناشناس میتواند کاربر را در معرض clickjacking یا اسکریپت مخرب قرار دهد؛ فقط از منابع مورد اعتماد استفاده کنید.
- مسدودسازی از سمت مقصد: بسیاری از سایتها (مثل گوگل، بانکها و شبکههای اجتماعی) با هدرهای امنیتی مانع نمایش خود در iframe میشوند و خطای «refused to connect» میدهند؛ این محدودیت قابل دور زدن نیست.
- حذف برای کاربران کمدسترسی: در نصب چندسایتی، وردپرس کد iframe کاربران غیرمدیر را هنگام ذخیره حذف میکند.
- اثر بر سرعت و سئو: هر iframe یک صفحهٔ کامل جداگانه بارگذاری میکند و میتواند سرعت سایت را کاهش دهد؛ محتوای داخل آن هم توسط موتور جستجو به پای سایت شما ثبت نمیشود.
- واکنشگرایی دستی: iframe بهصورت پیشفرض ارتفاع ثابت دارد و برای درستنمایش در موبایل باید با CSS واکنشگرا شود.
امنیت را جدی بگیرید: از ویژگی sandbox استفاده کنید
sandbox در تگ iframe به شما اجازه میدهد قابلیتهای محتوای جاسازیشده را محدود کنید؛ مثلاً با مقادیر allow-scripts و allow-same-origin فقط همان چیزهایی را که لازم است فعال میگذارید. این کار احتمال سوءاستفاده از قاب را کاهش میدهد و برای جاسازی از هر منبعی که کامل به آن اطمینان ندارید، توصیه میشود.| مشکل رایج | علت احتمالی | راهحل |
|---|---|---|
| خطای refused to connect | سایت مقصد هدر X-Frame-Options دارد | از سرویسی که «کد جاسازی» رسمی میدهد استفاده کنید |
| iframe بعد از ذخیره حذف شد | کاربر مجوز unfiltered_html ندارد | با کاربر مدیر ذخیره کنید یا از افزونه/شورتکد استفاده کنید |
| ارتفاع ثابت و برش در موبایل | iframe واکنشگرا نیست | قاب را با CSS و aspect-ratio واکنشگرا کنید |
| اسکرول دوگانه و آزاردهنده | محتوای مقصد بلندتر از قاب است | ارتفاع مناسب بگذارید یا اسکرول داخلی را با استایل مدیریت کنید |
نقلقول از مرجع رسمی موزیلا (MDN)
نقش هاست وردپرس وبداده در جاسازی بیدردسر iframe
✅ زیرساخت نسل جدید HPE (Gen11 و Gen10) برای پایداری و پاسخ سریع سرور.
✅ دیتاسنترهای ایران، هلند و آلمان برای انتخاب نزدیکترین لوکیشن به مخاطبان شما.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک در افزودن کد، بکاپ و رفع خطای احتمالی.
پرسشهای پرتکرار دربارهٔ iframe در وردپرس
سادهترین راه جاسازی iframe در وردپرس چیست؟
برای یک جاسازی موردی، سادهترین راه استفاده از بلوک «HTML سفارشی» (Custom HTML) در ویرایشگر بلوکی است. کافی است بلوک را اضافه کنید، کد iframe سرویس مقصد را داخلش بچسبانید و با دکمهٔ Preview نتیجه را ببینید. برای استفادهٔ مکرر، ساخت شورتکد اختصاصی یا افزونه بهتر است.
چرا iframe من بعد از ذخیره ناپدید میشود؟
معمولترین علت، نداشتن مجوز unfiltered_html است. در نصب تکسایتی فقط مدیر کل میتواند کد iframe را ذخیره کند و در وردپرس چندسایتی تنها Super Admin. اگر با کاربر کمدسترسی وارد شدهاید، وردپرس هنگام ذخیره کد iframe را حذف میکند؛ با کاربر مدیر امتحان کنید یا از افزونه/شورتکد استفاده کنید.
چرا بعضی سایتها با خطای refused to connect جاسازی نمیشوند؟
چون آن سایتها با هدرهای امنیتی مانند X-Frame-Options یا Content-Security-Policy عمداً جلوی نمایش خود در iframe را میگیرند. این تصمیم سمت سایت مقصد است و از سمت شما قابل دور زدن نیست. در این حالت باید از «کد جاسازی» رسمی که خود سرویس ارائه میدهد استفاده کنید.
چطور iframe را در موبایل واکنشگرا کنم؟
iframe بهصورت پیشفرض ابعاد ثابت دارد. آن را داخل یک div با موقعیت relative و نسبت تصویر مشخص (aspect-ratio) بگذارید و خود iframe را با position:absolute و عرض و ارتفاع ۱۰۰٪ کشیده کنید. نمونهٔ کامل CSS آن را در بخش روش اول همین مقاله آوردهایم.
آیا افزودن iframe به سئوی سایت آسیب میزند؟
محتوای داخل iframe به پای سایت شما ایندکس نمیشود، پس نباید متن اصلی و مهم صفحه را داخل iframe بگذارید. با این حال جاسازی معقول ویدیو یا نقشه مشکلی برای سئو ندارد؛ فقط مراقب سرعت باشید، چون iframeهای سنگین میتوانند بارگذاری صفحه را کند کنند.
تفاوت iframe با قابلیت جاسازی خودکار (oEmbed) وردپرس چیست؟
وردپرس برای بعضی سرویسها مثل یوتیوب و توییتر، جاسازی خودکار (oEmbed) دارد؛ کافی است لینک را بچسبانید. iframe زمانی به کار میآید که سرویس مقصد oEmbed ندارد یا میخواهید یک صفحهٔ دلخواه یا ابزارک خاص را جاسازی کنید که وردپرس آن را بهصورت خودکار نمیشناسد.
کد شورتکد سفارشی را دقیقاً کجا قرار دهم؟
بهترین جا، فایل functions.php قالب فرزند یا افزونهٔ Code Snippets است. قراردادن کد در قالب فرزند یا افزونه باعث میشود با بهروزرسانی قالب اصلی، کد شما پاک نشود. مستقیم در functions.php قالب اصلی کد نگذارید، چون با اولین آپدیت قالب از بین میرود.
چطور امنیت iframe را بیشتر کنم؟
سه کار اصلی: فقط از منابع مورد اعتماد جاسازی کنید، از ویژگی sandbox برای محدودکردن قابلیتهای محتوای داخل قاب استفاده کنید، و در صورت امکان ویژگی referrerpolicy را تنظیم کنید. اگر افزونه بهکار میبرید، امکاناتی مانند کد امنیتی افزونهٔ Advanced iFrame هم کمککننده است.
جمعبندی و قدم بعدی شما
جمعبندی سریع
✅ بدون کدنویسی: افزونهٔ iframe یا Advanced iFrame.
✅ استفادهٔ مکرر و امن: شورتکد سفارشی با add_shortcode.
✅ همیشه: منبع مورد اعتماد + sandbox + قاب واکنشگرا.



