
به اشتراک بگذارید
هاست و وردپرس | بلاگ وبداده
حالت تعمیر (Maintenance Mode) وردپرس و ساخت صفحه Coming Soon
- موضوع چیست: نمایش پیام موقت به بازدیدکننده هنگام بهروزرسانی یا بازطراحی سایت.
- تفاوت با Coming Soon: حالت تعمیر برای سایت فعال، Coming Soon برای سایتِ هنوز منتشرنشده.
- راه ساده و بدون کد: افزونههایی مثل LightStart یا SeedProd با یک صفحهی آماده.
- راه دستی: افزودن یک تابع به
functions.phpکه کد وضعیت503برمیگرداند. - نکتهی سئو: کد
503به گوگل میگوید توقف موقتی است تا رتبهی سایت آسیب نبیند.
در یک نگاه
حالت تعمیر وردپرس چیست و چه تفاوتی با صفحه Coming Soon دارد؟
.maintenance در ریشهی سایت میسازد و همان پیام معروف «برای مدت کوتاهی برای تعمیر و نگهداری در دسترس نیست» را نشان میدهد.یک تشبیه ساده
نکتهی کلیدی سئو
wp_maintenance() هنگام فعال بودن حالت تعمیر، هدر Retry-After و کد وضعیت 503 Service Unavailable را برمیگرداند. این دقیقاً همان چیزی است که برای یک توقف کوتاه به آن نیاز دارید؛ اگر بهجای 503، صفحهی معمولی یا خطای 404 نشان دهید، ممکن است گوگل آن را جدی بگیرد و به رتبه آسیب بزند.
افزونه بهتر است یا روش دستی با کد؟
- روش افزونه: افزونههای رایگانی مثل LightStart (با بیش از ۹۰۰٬۰۰۰ نصب فعال، سازندهٔ همینها) یا SeedProd (بیش از ۸۰۰٬۰۰۰ نصب فعال) صفحهای آماده با طراحی، شمارش معکوس و فرم خبرنامه در اختیارتان میگذارند.
- روش دستی: یک تابع کوتاه در
functions.phpیا یک فایل drop-in که پیام تعمیر را با کد 503 نمایش میدهد؛ بدون نصب هیچ افزونهای.
جدول مقایسه: روش افزونه در برابر روش دستی
| معیار | روش افزونه | روش دستی (کد) |
|---|---|---|
| سطح دشواری | آسان (بدون کد) | متوسط (نیاز به دانش فنی) |
| طراحی صفحه | آماده و قابل شخصیسازی | ساده و متنی |
| امکانات اضافه | شمارش معکوس، فرم، شبکه اجتماعی | ندارد |
| کد وضعیت 503 | معمولاً پشتیبانی میشود | خودتان تنظیم میکنید |
| بار روی سایت | یک افزونهی اضافه | بدون افزونه، سبکتر |
| مناسب برای | اکثر کاربران و سایتهای تجاری | کاربران فنی و سایتهای سبک |
جمعبندی انتخاب
آموزش گامبهگام فعالسازی حالت تعمیر و صفحه Coming Soon
قبل از شروع: یک بکاپ بگیرید
functions.php است و یک اشتباه کوچک میتواند سایت را با «صفحهی سفید مرگ» از کار بیندازد. پس قبل از هر تغییری از کل سایت و بهویژه فایلهای قالب بکاپ کامل بگیرید تا اگر چیزی طبق انتظار پیش نرفت، سریع به عقب برگردید.روش اول: استفاده از افزونه (بدون کد)
- از پیشخوان به مسیر
افزونهها ← افزودن افزونهبروید و عبارت «LightStart» یا «WP Maintenance Mode» را جستجو، نصب و فعال کنید. - به تنظیمات افزونه (معمولاً زیر منوی
تنظیمات) بروید و در تب «General» گزینهی وضعیت (Status) را رویActivatedبگذارید. - در تب «Design» متن عنوان، توضیح و رنگ پسزمینهی صفحهی تعمیر را دلخواه تنظیم کنید؛ برای سایت جدید همین صفحه نقش Coming Soon را بازی میکند.
- در صورت نیاز، ماژولهای شمارش معکوس و فرم خبرنامه را فعال کنید تا در دورهی Coming Soon ایمیل بازدیدکنندهها را جمع کنید.
- تغییرات را ذخیره کنید. حالا کاربران خارج از حساب، صفحهی تعمیر را میبینند و شما بهعنوان مدیر همچنان سایت را عادی مشاهده میکنید.
چطور از فعالبودن مطمئن شوم؟
روش دوم: افزودن کد به functions.php (روش دستی)
functions.php قالب، حالت تعمیر را دستی فعال کنید. برای اینکه این کد با بهروزرسانی قالب پاک نشود، حتماً از قالب فرزند (Child Theme) استفاده کنید. این کد را در انتهای فایل functions.php قالب فرزند قرار دهید:<?php
// فعالسازی دستی حالت تعمیر وردپرس از طریق functions.php قالب فرزند
// این کد را در انتهای فایل functions.php قالب فرزند قرار دهید
function webdade_maintenance_mode() {
// مدیرها و کاربران واردشده سایت را عادی میبینند؛ بقیه پیام تعمیر
if ( ! current_user_can( 'edit_themes' ) || ! is_user_logged_in() ) {
wp_die(
'<h1>سایت در حال تعمیر و بهروزرسانی است</h1>' .
'<p>بهزودی برمیگردیم؛ لطفاً چند دقیقه دیگر دوباره سر بزنید.</p>',
'در حال تعمیر',
array( 'response' => 503 ) // کد ۵۰۳ به گوگل میگوید توقف موقتی است
);
}
}
add_action( 'get_header', 'webdade_maintenance_mode' );PHPget_header وصل میشود و برای هر بازدیدکنندهای که وارد حساب سایت نشده یا دسترسی ویرایش قالب ندارد، پیام تعمیر را با کد وضعیت 503 نمایش میدهد. مدیرها و کاربران واردشده سایت را عادی میبینند و میتوانند به کارشان ادامه دهند. برای خاموش کردن حالت تعمیر کافی است همین چند خط را از فایل حذف کنید و ذخیره نمایید.چرا قالب فرزند مهم است؟
روش سوم: سفارشیسازی پیام آپدیت با فایل maintenance.php
maintenance.php در پوشهی wp-content زیباتر و فارسی کنید. این فایل هم کد 503 و هم هدر Retry-After را بهدرستی میفرستد:<?php
// فایل سفارشی wp-content/maintenance.php برای زیباتر کردن پیامِ زمانِ بهروزرسانی
// وردپرس در حین آپدیت هسته/افزونه/قالب اگر این فایل باشد، آن را نمایش میدهد
$protocol = isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
if ( 'HTTP/1.1' !== $protocol && 'HTTP/1.0' !== $protocol ) {
$protocol = 'HTTP/1.0';
}
header( "$protocol 503 Service Unavailable", true, 503 );
header( 'Content-Type: text/html; charset=utf-8' );
header( 'Retry-After: 3600' ); // بعد از یک ساعت دوباره تلاش کن
?>
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head><meta charset="utf-8"><title>در حال بهروزرسانی</title></head>
<body style="font-family:Tahoma,sans-serif;text-align:center;padding-top:12%">
<h1>سایت برای مدت کوتاهی در حال بهروزرسانی است</h1>
<p>ممنون از صبر شما؛ چند دقیقه دیگر دوباره سر بزنید.</p>
</body>
</html>PHPwp-content/maintenance.php بسازید. از این پس هر وقت وردپرس در حال بهروزرسانی باشد، بهجای پیام انگلیسی پیشفرض، همین صفحهی سفارشی نمایش داده میشود.عیبیابی: سایت در حالت تعمیر گیر کرده است
.maintenance در ریشهی سایت است. راهحل ساده است: با مدیر فایل هاست یا SFTP وارد پوشهی ریشه (همانجا که wp-admin و wp-content هستند) شوید و فایل .maintenance را حذف کنید. بلافاصله سایت به حالت عادی برمیگردد. اگر روش دستیِ functions.php را استفاده کردهاید و به پیشخوان دسترسی ندارید، همان چند خط کد را از فایل حذف کنید.
میزبانی وردپرس در وبداده
✅ دیتاسنترهای متنوع در ایران، هلند و آلمان برای انتخاب نزدیکترین لوکیشن.
✅ کنترلپنل سیپنل با مدیر فایل برای ساخت و حذف امنِ فایلهای .maintenance و maintenance.php.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک هنگام گیرکردن سایت در حالت تعمیر.
تجربهی پشتیبانی وبداده
.maintenance را حذف میکنیم و در کمتر از چند دقیقه سایت باز میشود. همین دسترسی سریع به فایلها، تفاوت یک میزبانی خوب را در لحظهی بحران نشان میدهد.معایب و محدودیتهایی که باید بدانید
پرسشهای پرتکرار
فرق حالت تعمیر و صفحه Coming Soon چیست؟
حالت تعمیر برای سایتی است که قبلاً منتشر شده و موقتاً برای بهروزرسانی پایین میآید؛ بهتر است کد 503 برگرداند تا سئو حفظ شود. صفحه Coming Soon برای سایت تازهای است که هنوز منتشر نشده و معمولاً میخواهید همان صفحه در گوگل ایندکس شود و ایمیل بازدیدکنندهها را جمع کند.
آیا حالت تعمیر به سئوی سایتم آسیب میزند؟
اگر کوتاه باشد و با کد وضعیت 503 همراه باشد، خیر. کد 503 به گوگل میگوید توقف موقتی است و رتبه حفظ میشود. آسیب زمانی رخ میدهد که سایت روزها یا هفتهها در حالت تعمیر بماند یا بهجای 503، خطای دائمی نشان دهد.
بدون افزونه چطور حالت تعمیر را فعال کنم؟
با افزودن یک تابع کوتاه به فایل functions.php قالب فرزند که به رویداد get_header وصل میشود و برای کاربران غیرمدیر پیام تعمیر را با کد 503 نمایش میدهد. نمونهی کامل این کد در همین مقاله آمده است.
سایتم روی پیام «در دسترس نیست» قفل شده؛ چه کنم؟
این معمولاً بهخاطر باقیماندن فایل .maintenance در ریشهی سایت پس از یک بهروزرسانی ناقص است. با مدیر فایل هاست یا SFTP وارد پوشهی ریشه شوید و فایل .maintenance را حذف کنید؛ سایت بلافاصله باز میشود.
فایل .maintenance دقیقاً چیست؟
یک فایل موقتی است که خود وردپرس هنگام بهروزرسانی هسته، افزونه یا قالب در ریشهی سایت میسازد و شامل زمان شروع بهروزرسانی است. تا وقتی این فایل باشد، وردپرس پیام تعمیر را نشان میدهد و بعد از پایان آپدیت خودش آن را حذف میکند.
در حالت تعمیر خودم هم نمیتوانم وارد سایت شوم؟
با روش افزونه و روش کدِ درست، مدیرهای واردشده سایت را عادی میبینند و فقط بازدیدکنندههای معمولی صفحهی تعمیر را مشاهده میکنند. اگر با فایل .maintenance دستی کار میکنید، آن حالت کل سایت را میبندد مگر منطق استثنا اضافه کنید؛ برای همین روشهای افزونه یا functions.php بهتر هستند.
کدام افزونهی حالت تعمیر بهتر است؟
افزونهی «مطلقاً بهتر» وجود ندارد؛ به نیاز شما بستگی دارد. LightStart سبک است و با ویرایشگر بلوکی وردپرس کار میکند؛ SeedProd سازندهی کشیدنورهاکردن دارد و امکان تعیین نقشهایی که میتوانند سایت را ببینند. هر دو نسخهی رایگان کاربردی دارند.
چطور برای صفحه Coming Soon ایمیل جمع کنم؟
بیشتر افزونههای حالت تعمیر و Coming Soon یک ماژول فرم خبرنامه دارند که میتوانید فعالش کنید تا بازدیدکنندهها ایمیلشان را وارد کنند و هنگام رونمایی سایت به آنها اطلاع دهید. این کار برای سایتهای تازه یکی از مهمترین مزیتهای صفحه Coming Soon است.
بعد از پایان کار، حالت تعمیر را چطور خاموش کنم؟
اگر از افزونه استفاده کردهاید، وضعیت (Status) را در تنظیمات افزونه روی Deactivated بگذارید. اگر از کد استفاده کردهاید، تابع را از functions.php حذف کنید. اگر فایل .maintenance مانده، آن را از ریشهی سایت پاک کنید. حتماً پس از هر بهروزرسانی این مرحله را فراموش نکنید.



