آموزش وردپرس

چگونه یک پاپ‌آپ وردپرس بدون افزونه بسازیم (روش رایگان)

وحید بهنام8 دقیقه مطالعه1 بازدید0 دیدگاه

آیا می‌خواهید در وردپرس یک پاپ‌آپ بسازید ولی افزونه نصب نکنید؟ در این راهنما، قدم‌به‑قدم با توابع هسته و کدهای ساده، یک پاپ‌آپ کارا می‌سازیم. مثال‌های عملی و توضیح‌های واضح باعث می‌شود حتی با تجربهٔ کم، به راحتی پیش بروید. ما بهینه‌سازی CSS، JavaScript پایه و تنظیمات نمایش را گام به گام نشان می‌دهیم. هر بخش با نکات کلیدی و هشدارهای رایج همراه است تا از خطا جلوگیری کنید. در نهایت، یک پاپ‌آپ سفارشی، سازگار با مرورگرها و بدون افزونهٔ خارجی خواهید داشت.

فهرست مطالب

آشنایی با اصول پاپ اپ

پاپ‑اپ‌ها ابزار قدرتمندی برای جذب توجه بازدیدکننده هستند، اما برای اثرگذاری واقعی باید اصول پایه‌ای رفتار کاربری و روانشناسی تعامل را درک کنید. اولین اصل این است که زمان نمایش باید به‌گونه‌ای تنظیم شود که کاربر هنوز محتوا را می‌خواند، اما قبل از اینکه کاملاً از صفحه خارج شود، به او یک پیشنهاد ارزشمند ارائه شود. برای مثال، نمایش پاپ‑اپ پس از عبور از ۳۰٪ ارتفاع صفحه یا پس از ۱۰ ثانیه حضور فعال، معمولاً تعادل خوبی بین عدم مزاحمت و دیده شدن فراهم می‌کند.

دومین اصل، سازگاری با دستگاه‌های مختلف است. در موبایل‌ها فضای صفحه محدود است؛ بنابراین پاپ‑اپ باید به‌صورت تمام‌عرض (full‑width) یا به‌صورت نوار بالای صفحه (top‑bar) ظاهر شود و امکان بستن راحت را با یک دکمه بزرگ فراهم کند. در دسکتاپ می‌توانید از پنجره‌های وسط صفحه (center modal) استفاده کنید تا توجه کاربر را جلب کنید، اما باید از اندازه‌های بزرگ که محتوا را مخفی می‌کند، اجتناب کنید.

سومین نکته مهم، ارزش پیشنهادی واضح است. پیام پاپ‑اپ باید در کمتر از یک خط به بازدیدکننده بگوید چه چیزی برایش مهم است؛ مثل «۱۰٪ تخفیف برای اولین خرید» یا «دریافت راهنمای رایگان سئو». استفاده از برای کلمات کلیدی و برای جزئیات تکمیلی می‌تواند خوانایی را بالا برد. همچنین افزودن یک دکمهٔ فراخوانی به عمل (CTA) با متن مشخص مثل «همین حالا دریافت کن» باعث می‌شود کاربر به‌سرعت تصمیم بگیرد.

در ادامه یک جدول خلاصهٔ چهار اصل کلیدی پاپ‑اپ ارائه می‌شود:

اصلتوضیح کوتاهنکته عملی
زمان نمایشبه‌موقع و غیرمزاحمپس از ۳۰٪ اسکرول یا ۱۰ ثانیه
پاسخگویی به دستگاهطراحی مناسب موبایل و دسکتاپنوار بالایی در موبایل، مودال مرکزی در دسکتاپ
ارزش پیشنهادیپیام واضح و مختصراستفاده از کلمات کلیدی و CTA واضح
قابلیت بستندسترس‌پذیری برای خروجدکمهٔ «X» بزرگ و قابل کلیک

در نهایت، به یاد داشته باشید که تست A/B (تجربهٔ مقایسه‌ای) یکی از بهترین روش‌ها برای بهینه‌سازی پاپ‑اپ‌هاست. می‌توانید دو نسخهٔ متفاوت از پیام یا زمان نمایش را به گروه‌های تصادفی نشان دهید و نرخ تبدیل (conversion rate) را مقایسه کنید. این کار به شما کمک می‌کند تا دقیقاً بفهمید کدام ترکیب از اصول فوق برای مخاطب خاص سایت‌تان موثرتر است.

ایجاد قالب HTML ساده

برای ساختن پاپ‑اپ بدون نیاز به افزونه، ابتدا یک قالب HTML ساده می‌نویسیم که شامل لایهٔ پوشش‌دار (overlay)، جعبهٔ محتوا، دکمهٔ بستن و محتوای دلخواه باشد. این ساختار پایه به شما این امکان را می‌دهد که با افزودن CSS و JavaScript فقط رفتار نمایش/پنهان‌سازی را کنترل کنید، در حالی که تمام عناصر به‌صورت واضح و قابل ویرایش در کد HTML باقی می‌مانند.

در زیر یک نمونهٔ اولیهٔ قالب آورده شده است. می‌توانید آن را در فایل popup-template.php یا هر فایلی که می‌خواهید در قالب خود قرار دهید، کپی کنید. توضیح کوتاهی داخل هر خط کمک می‌کند تا هر بخش را بشناسید.

CODE


پس از قرار دادن کد، با افزودن کلاس‌های CSS می‌توانید ظاهر را به سلیقهٔ خود تنظیم کنید؛ به‌عنوان مثال .popup-overlay می‌تواند پس‌زمینهٔ نیمه‌شفافی با رنگ rgba(0,0,0,0.6) داشته باشد، و .popup-box می‌تواند حاشیهٔ گرد، سایهٔ ملایم و عرض حداکثر 90٪ صفحه را به‌دست آورد. برای بارگذاری مسیرهای تصویر یا استایل از تابع get_template_directory_uri() استفاده کنید تا در محیط وردپرس به‌درستی لینک‌ها تولید شوند.

عنصرهدفتوضیح مختصر
popup-overlayپوشش پس‌زمینهپوشش نیمه‌شفاف که کلیک روی آن می‌تواند پاپ‑اپ را ببندد.
popup-boxمحفظهٔ محتواجعبهٔ مرکزی که محتوا و دکمهٔ بستن داخل آن قرار می‌گیرد.
popup-closeدکمه بستندکمهٔ «×» برای بسته شدن سریع پاپ‑اپ.
popup-contentمتن و CTAقسمتی برای عنوان، متن توضیحی و دکمهٔ اقدام (CTA).

نکتهٔ کاربردی: برای فعال‌سازی پاپ‑اپ می‌توانید یک اسکریپت سادهٔ JavaScript اضافه کنید که هنگام بارگذاری صفحه یا پس از گذشت زمان مشخص (مثلاً ۵ ثانیه) کلاس active را به #myPopupOverlay اضافه کند. این کار باعث می‌شود پوشش و جعبهٔ پاپ‑اپ با انیمیشن fade‑in ظاهر شوند؛ به‌علاوه، افزودن یک eventListener برای دکمهٔ بستن یا کلیک روی پوشش، کلاس را حذف می‌کند و پاپ‑اپ مخفی می‌شود. این روش کاملاً سبک است و نیازی به کتابخانهٔ بزرگ یا افزونهٔ اضافه ندارید.

نوشتن کد CSS برای ظاهر

برای اینکه پاپ‌آپ بدون افزونه به‌صورت حرفه‌ای ظاهر شود، اولین قدم نوشتن CSS است که به‌طور دقیق بر ساختار HTML ایجاد شده توسط توابع PHP یا شورت‌کدها اعمال می‌شود. این استایل‌ها نه تنها ظاهر زیبایی می‌دهند، بلکه قابلیت واکنش‌گرا (responsive) و انیمیشن‌های نرم را نیز تضمین می‌کنند، به‌طوری که بازدیدکنندگان حس یک تجربه کاربری بومی را دریافت کنند.

در اکثر پیاده‌سازی‌ها دو عنصر اصلی وجود دارد: .my-popup-overlay که تمام صفحه را می‌پوشاند و .my-popup-content که محتوای پاپ‌آپ را در مرکز نمایش می‌دهد. برای انتخاب این عناصر می‌توانید از کلاس‌ها یا شناسه‌ها (ID) استفاده کنید؛ مهم است که این انتخابگرها به‌صورت خاص (specific) باشند تا با قالب‌های دیگر تداخل نداشته باشند.

چند ویژگی اساسی که به‌سرعت ظاهر پاپ‌آپ را بهبود می‌بخشد عبارتند از:

  • پس‌زمینه شفاف یا رنگی برای لایه پوشش (overlay)؛ معمولاً از rgba(0,0,0,0.6) استفاده می‌شود تا محتوا زیرین کمی تار شود.
  • حاشیه‌گرد (border‑radius) برای جعبه محتوا؛ مقدار ۸ تا ۱۲ پیکسل ظاهری مدرن می‌دهد.
  • سایه (box‑shadow) جهت برجسته‌سازی؛ یک مقدار 0 4px 12px rgba(0,0,0,0.2) کافی است.
  • انیمیشن ظاهر شدن؛ با استفاده از @keyframes fadeIn می‌توانید پاپ‌آپ را به‌صورت تدریجی نشان دهید.
ویژگیمقدار پیشنهادیتوضیح مختصر
Overlay backgroundrgba(0,0,0,0.6)شفافیت مناسب برای تمرکز بر محتوا
Popup width90% (max‑width: 500px)پوشش تمام صفحه در موبایل، محدود در دسکتاپ
Border‑radius10pxحاشیه نرم و مدرن
Box‑shadow0 4px 12px rgba(0,0,0,0.2)ایجاد عمق بصری
Animation0.3s ease‑outظاهر شدن ملایم

برای واکنش‌گرا بودن، می‌توانید از یک قانون رسانه‌ای (media query) ساده استفاده کنید تا در صفحه‌های کوچکتر، عرض پاپ‌آپ به‌صورت کامل (100 %) تنظیم شود و فاصله‌های داخلی (padding) کاهش یابد. به‌عنوان مثال:


@media (max-width: 480px) {
    .my-popup-content {
        width: 100%;
        padding: 1rem;
    }
}

نکته عملی: اگر در حین توسعه تغییرات CSS را در مرورگر (با ابزارهای توسعه‌دهنده) تست کنید، می‌توانید به‌سرعت مقدار z-index را تنظیم کنید تا مطمئن شوید پاپ‌آپ بالای همه عناصر دیگر قرار دارد؛ مقدار 9999 معمولاً کافی است. این کار از بروز مشکلات پوشش‌دادن (overlap) جلوگیری می‌کند و تجربه کاربری را بهبود می‌بخشد.

افزودن اسکریپت JavaScript پایه

برای شروع، کافی است یک فایل popup.js در پوشه قالب یا یک زیرپوشه مانند js ایجاد کنید. این فایل شامل توابع ساده‌ای است که باز و بسته کردن پاپ‑اپ را کنترل می‌کند. در ساده‌ترین حالت، یک تابع togglePopup() می‌تواند کلاس visible را به المان پاپ‑اپ اضافه یا حذف کند؛ CSS مربوطه مسئول نمایش یا مخفی‌سازی آن است.

  1. ایجاد فایل جاوااسکریپت: در مسیر wp-content/themes/your-theme/js/ یک فایل به نام popup.js بسازید.
  2. نوشتن کد پایه:
    CODE
    document.addEventListener('DOMContentLoaded', function () {
        const btn = document.getElementById('open-popup');
        const overlay = document.getElementById('popup-overlay');
        const close = document.getElementById('close-popup');
    
        function togglePopup() {
            overlay.classList.toggle('visible');
        }
    
        btn && btn.addEventListener('click', togglePopup);
        close && close.addEventListener('click', togglePopup);
        overlay && overlay.addEventListener('click', function(e) {
            if (e.target === overlay) togglePopup();
        });
    });
  3. بارگذاری اسکریپت در وردپرس: در فایل functions.php قالب خود، از wp_enqueue_script() استفاده کنید تا فایل به‌صورت غیرهمزمان (async) لود شود.

کد زیر را در functions.php اضافه کنید. توجه داشته باشید که مسیر نسبت به قالب تنظیم شده و از پارامتر true برای لود در پایین صفحه استفاده می‌شود تا اطمینان حاصل شود DOM قبلاً آماده است.

CODE
function theme_enqueue_popup_script() {
    wp_enqueue_script(
        'custom-popup',
        get_template_directory_uri() . '/js/popup.js',
        array(),
        null,
        true
    );
}
add_action('wp_enqueue_scripts', 'theme_enqueue_popup_script');

در صورت نیاز به پشتیبانی از مرورگرهای قدیمی یا افزودن انیمیشن‌های ساده، می‌توانید از توابع fadeIn و fadeOut با CSS Transitions بهره ببرید. به‌عنوان مثال، اضافه کردن کلاس fade به المان پاپ‑اپ باعث می‌شود که تغییر شفافیت به‌صورت نرم اتفاق بیفتد. این کار تنها با یک خط CSS انجام می‌شود و نیازی به کتابخانه‌های سنگین نیست.

عملیاتکد JavaScriptتوضیح
باز کردن پاپ‑اپoverlay.classList.add('visible');کلاس CSS visible را اضافه می‌کند.
بستن پاپ‑اپoverlay.classList.remove('visible');کلاس را حذف می‌کند تا پاپ‑اپ مخفی شود.
تغییر وضعیتoverlay.classList.toggle('visible');اگر موجود باشد حذف، اگر نباشد اضافه می‌کند.

در نهایت، برای تست سریع می‌توانید یک دکمه ساده در قالب خود بگذارید: . وقتی این دکمه کلیک شد، اسکریپت بالا اجرا می‌شود و پاپ‑اپ با انیمیشن دلخواه شما ظاهر می‌شود. این روش پایه، بدون هیچ افزونه‌ای، به شما امکان می‌دهد تا کنترل کامل بر رفتار و ظاهر پاپ‑اپ داشته باشید و در صورت نیاز به گسترش، به‌راحتی توابع یا رویدادهای جدید اضافه کنید.

قرار دادن کد در فایل functions

فایل functions.php در قالب وردپرس محلی است که می‌توانید توابع PHP دلخواه خود را به‌صورت مستقیم اضافه کنید. پیش از هر تغییری، حتماً یک نسخه پشتیبان از این فایل بگیرید و اگر از قالب اصلی استفاده می‌کنید، بهتر است یک قالب فرزند (child theme) بسازید تا به‌روزرسانی‌های قالب اصلی باعث از دست رفتن کدهای شما نشود.

برای نمایش پنجرهٔ پاپ‑اپ بدون نیاز به افزونه، ساده‌ترین روش این است که یک هوک (hook) به wp_footer اضافه کنید؛ این هوک در انتهای هر صفحه اجرا می‌شود و می‌تواند کد HTML، CSS و JavaScript مورد نیاز پاپ‑اپ را درج کند. نمونهٔ زیر یک بلوک سادهٔ پاپ‑اپ را با استفاده از add_action ایجاد می‌کند:


add_action( 'wp_footer', function() {
?>


مراحل دقیق افزودن این کد به functions.php به صورت زیر است:

  1. از طریق FTP یا مدیر فایل‌های هاست، مسیر /wp-content/themes/your-child-theme/functions.php را باز کنید.
  2. کد بالا را در انتهای فایل، پس از آخرین خط ?>‌ (اگر وجود داشت) بچسبانید. اگر تگ بسته‌گذاری PHP وجود نداشته باشد، فقط کد را به‌صورت مستقیم وارد کنید.
  3. فایل را ذخیره کنید و صفحهٔ وب‌سایت را در مرورگر باز کنید؛ پس از ۳ ثانیه پاپ‑اپ باید ظاهر شود.
  4. در صورت نیاز به تغییر زمان نمایش یا محتوا، مقادیر داخل توابع JavaScript و HTML را مطابق با هدف خود تنظیم کنید.

برای جلوگیری از بارگذاری مستقیم اسکریپت‌ها در هر صفحه، می‌توانید از wp_enqueue_script استفاده کنید و اسکریپت را تنها در صفحات خاص (مثلاً صفحهٔ فرونت) بارگذاری کنید. به‌عنوان مثال، با شرط is_front_page() می‌توانید مطمئن شوید که کد فقط در صفحهٔ اصلی اجرا می‌شود و بهینه‌سازی سرعت بارگذاری سایت حفظ می‌گردد.

تنظیم رفتار نمایش شرطی

در بسیاری از موارد می‌خواهید پاپ‑اپ فقط در شرایط خاصی نمایش داده شود؛ مثلاً فقط برای اولین بازدید کاربر، یا تنها در صفحات دسته‌بندی مشخص. این کار را می‌توان با ترکیب توابع شرطی وردپرس (مانند is_front_page() یا is_single()) و یک اسکریپت سادهٔ جاوااسکریپت انجام داد. وقتی شرط درست باشد، اسکریپت کد HTML پاپ‑اپ را به صفحه اضافه می‌کند؛ در غیر این صورت، هیچ چیز نمایش داده نمی‌شود.

برای شروع، کد زیر را به فایل functions.php قالب فرزند خود اضافه کنید. این قطعه کد یک هک سادهٔ wp_footer می‌نویسد که قبل از بسته شدن تگ اسکریپت پاپ‑اپ را بارگذاری می‌کند. داخل اسکریپت می‌توانید با استفاده از توابع شرطی وردپرس، متغیر showPopup را تنظیم کنید:

CODE
add_action( 'wp_footer', function() {
    ?>
     

اگر می‌خواهید پاپ‑اپ برای کاربران تازه‌وارد (بدون کوکی) نمایش داده شود، می‌توانید یک شرط سادهٔ کوکی را به اسکریپت اضافه کنید. در مثال زیر ابتدا بررسی می‌شود که آیا کوکی visited وجود دارد یا نه؛ اگر نداشت، پاپ‑اپ نشان داده می‌شود و سپس کوکی برای ۲۴ ساعت تنظیم می‌شود تا بازدیدهای بعدی این پاپ‑اپ را مسدود کند:

CODE
if ( !document.cookie.includes('visited') ) {
    showPopup = true;
    document.cookie = 'visited=1; max-age=' + 60*60*24 + '; path=/';
}

در ادامه یک خلاصهٔ بصری از رایج‌ترین شرایط نمایش و کد مرتبط ارائه شده است. این جدول می‌تواند به‌عنوان یک راهنمای سریع در هنگام تنظیم رفتار شرطی مورد استفاده قرار گیرد.

شرطکد PHPنتیجهٔ نمایش
صفحهٔ اصلیif ( is_front_page() )پاپ‑اپ فقط در homepage ظاهر می‌شود
پست‌های بلاگif ( is_single() && get_post_type() === 'post' )در هر مقالهٔ بلاگ نمایش می‌یابد
کاربر تازه‌واردif ( !document.cookie.includes('visited') )یک بار برای هر کاربر نمایش می‌گیرد
دسته‌بندی خاصif ( is_category('news') )فقط در پست‌های دستهٔ «اخبار» فعال می‌شود

تست و بهینه‌سازی عملکرد

پس از افزودن کد پاپ‌آپ به قالب، اولین گام تست کارکرد در مرورگرهای مختلف است. از Chrome DevTools و ابزارهای مشابه در Firefox یا Edge برای بررسی زمان بارگذاری اسکریپت، وجود خطاهای جاوااسکریپت و تداخل با سایر اسکریپت‌ها استفاده کنید. اگر خطایی مشاهده شد، به‌سرعت آن را در کنسول مرورگر پیدا کرده و محل دقیق خطا را با نگاه به شماره خط و فایل مربوطه اصلاح کنید. به‌خصوص در صفحات سنگین، اطمینان حاصل کنید که اسکریپت پاپ‌آپ پس از بارگذاری محتوای اصلی (در footer) اجرا می‌شود تا از تأخیرهای نامطلوب جلوگیری شود.

در مرحله بعد، عملکرد پاپ‌آپ را با ابزارهای آنلاین مانند GTmetrix یا PageSpeed Insights ارزیابی کنید. این سرویس‌ها به‌صورت خودکار زمان پاسخ‌دهی، وزن فایل‌های CSS/JS و تأثیر آنها بر First Contentful Paint (FCP) و Largest Contentful Paint (LCP) را نشان می‌دهند. اگر وزن اسکریپت بیش از ۳۰ کیلوبایت است، می‌توانید با فشرده‌سازی (minify) یا حذف کدهای غیرضروری آن را به‌حداقل برسانید. همچنین می‌توانید از async یا defer برای بارگذاری غیرهمزمان اسکریپت استفاده کنید تا رندر صفحه به تاخیر نیفتد.

معیارمقدار هدفتوضیح
زمان بارگذاری اسکریپت≤ 200 msبارگذاری سریع باعث کاهش لگ در نمایش پاپ‌آپ می‌شود.
اندازه فایل JS≤ 30 KBفشرده‌سازی و حذف توابع غیرضروری.
نرخ نمایش (Impression)≥ 80 %پاپ‌آپ باید در بیش از ۸۰ ٪ بازدیدها ظاهر شود.
نرخ تبدیل≥ 5 %درست‌تنظیم زمان و مکان نمایش برای بهبود تبدیل.

برای بهینه‌سازی نرخ تبدیل، آزمایش A/B تست‌های ساده می‌تواند بسیار مؤثر باشد. به‌عنوان مثال، دو نسخه از پاپ‌آپ با متن متفاوت («ثبت‌نام رایگان» در مقابل «دریافت تخفیف ۱۰٪») را به‌صورت همزمان به بازدیدکنندگان نشان دهید و با استفاده از یک ابزار تحلیلی مانند Google Optimize یا افزونه Nelio AB Testing نتایج را مقایسه کنید. اگر نسخه‌ای که پیام واضح‌تری دارد، نرخ کلیک بالاتری نشان داد، همان را به‌عنوان نسخه اصلی نگه دارید. این چرخه تست‑بهبود‑تست باید به‌صورت دوره‌ای تکرار شود تا عملکرد پاپ‌آپ در طول زمان حفظ و ارتقا یابد.

سوالات متداول

چطور می‌توانم یک پاپ‑اپ ساده با HTML/CSS بسازم؟

ابتدا یک div مخفی با کلاس مخصوص تعریف کنید. با CSS موقعیت fixed و پس‌زمینه نیمه‌شفاف تنظیم کنید. برای نمایش از حالت display:block یا visibility:visible استفاده کنید.

آیا برای نمایش پاپ‑اپ به زمان تاخیر نیاز به JavaScript دارم؟

نه، می‌توانید از CSS animation یا transition برای تاخیر استفاده کنید. فقط کافیست animation‑delay را روی کلید نمایش تنظیم کنید. اگر نیاز به شرط پیچیده‌تری دارید JavaScript ساده کافیست.

پاپ‑اپ در موبایل به درستی نمایش نمی‌دهد؛ چه تنظیماتی لازم است؟

از واحدهای نسبی مثل vw و vh برای عرض و ارتفاع استفاده کنید. media query برای صفحه‌های زیر 600px اضافه کنید و اندازه متن را تنظیم کنید. همچنین از overflow:auto برای اسکرول داخلی بهره بگیرید.

چگونه می‌توانم پاپ‑اپ را فقط برای کاربران تازه وارد نشان دهم؟

از کوکی یا localStorage برای ذخیره‌سازی یک مقدار پس از اولین بازدید استفاده کنید. اگر مقدار موجود نیست، پاپ‑اپ را نمایش دهید و سپس مقدار را ذخیره کنید. این کار با چند خط JavaScript انجام می‌شود.

چک‌لیست سریع

  • مفهوم پایه پاپ‑آپ را روشن کنید.
  • یک قالب HTML ساده برای محتوای پنجره بنویسید.
  • با CSS ظاهر دلخواه، از جمله موقعیت و انیمیشن، تنظیم کنید.
  • اسکریپت JavaScript پایه برای باز و بسته شدن اضافه کنید.
  • کدها را از طریق فایل functions.php به وردپرس متصل کنید.
  • قواعد شرطی برای نمایش در زمان یا صفحهٔ مشخص تعریف کنید.
  • عملکرد را در مرورگرها و دستگاه‌های مختلف تست و بهینه‌سازی نمایید.

با پیروی از این مراحل می‌توانید بدون افزونه، یک پنجره پاپ‑آپ کارآمد در سایت خود داشته باشید. این روش به شما کنترل کامل روی ظاهر و رفتار پاپ‑آپ می‌دهد و بهینه‌سازی عملکرد را نیز آسان می‌کند. اگر سؤال یا تجربه‌ای در خصوص تنظیمات دارید، خوشحال می‌شویم آن را با ما به اشتراک بگذارید.

نوشته‌شده و بازبینی‌شده توسط

متخصص سئو، وردپرس و تولید محتوا

اولین نفری باش که نظر می‌ده!

فقط نام لازم است، ایمیل اختیاریه و منتشر نمی‌شه.