یکی دیگر از قابلیتهای مفیدی که در وردپرس در نظر گرفته شده است انتشار پستها بر اساس یک زمانبندی مشخص است. این زمانبندی از سوی نویسندهی مطلب تنظیم میشود و پست شما در یک ساعت و تاریخ مشخص به شکل خودکار منتشر میشود.
در نتیجه برای انتشار یک پست در زمان مشخص، نیازمند دسترسی به رایانه نیستید. اینکه در سفر باشید یا تعطیلات یا به هر دلیلی دسترسی مستقیم به پنل وردپرس نداشته باشید فرقی نمیکند. با وجود این جدول زمانبندی میتوانید به راحتی پستهای خود را در زمان مناسب منتشر کنید.
تنها کاری که باید انجام دهید، تنظیم این برنامه زمانبندی از طریق صفحه ویرایش نوشته است. اما گاهی به دلایل مختلف این برنامه زمانبندی طبق انتظار کاربران کار نمیکند. در نتیجه پستها در زمان خود منتشر نميشود و تقویم محتوای شما دچار بهم ریختگی میشود.
این خطا به مشکل زمانبندی از دست رفته در وردپرس یا همان Missed Schedule شهرت دارد. در ادامه به حل مشکل زمانبندی از دست رفته در وردپرس میپردازیم. همراه ما باشید.
چرا پیام زمانبندی از دست رفته را مشاهده میکنم؟
دلایل مختلفی پشت مشکل زمانبندی از دست رفته در وردپرس وجود دارد. یکی از مهمترین دلایل، عدم عملکرد به موقع Cronها در وردپرس است.
به طور خلاصه میتوان گفت که Cronها در وردپرس مسئول اجرای یک دستور و اسکریپت در بازهی زمانی مشخص هستند. Cronها همان جدول زمانبندی در وردپرس را عملی میکنند.
استفاده از Cron مزیتهای بسیاری را به همراه دارد. حضور Cronها باعث میشود که Taskهای تکرارشونده در وردپرس به صورت درست و به موقع انجام شوند. برای مثال فرض کنید که قصد دارید هر روز از وبسایت وردپرسی خود یک فایل بکاپ تهیه کنید. این کار به صورت دستی بینهایت خسته کننده و زمانبر است. به همین خاطر است که این وظایف توسط Cronها انجام میشوند.
حال که میدانید Cronها دقیقا چه نقشی دارند میتوانیم به مقوله اصلی یعنی دلیل مشکل زمانبندی از دست رفته در وردپرس بپردازیم.
از آن جایی که اکثر کاربران از پلاگینهای بسیاری برای زمانبندی و انجام وظایف خودکار استفاده میکنند، Cronهای بسیاری در آن واحد در وردپرس مشغول به کار هستند.
وجود تعداد بالای این Cronها باعث میشود که در عملکرد آنها اختلال ایجاد شود. بروز مشکل در عملکرد یک Cron باعث میشود تا در عملکرد بقیه هم شاهد خطا باشیم. اختلال در کرونها جدول زمانبندی وردپرس را دچار بینظمی میکند و در نتیجه پستها در زمان معین منتشر نمیشوند.
به همین خاطر شاهد بروز مشکل زمانبندی از دست رفته در وردپرس هستیم.
حل پیام زمانبندی از دست رفته با استفاده از پلاگین Scheduled Post Trigger
یک راه حل ساده برای رفع مشکل زمانبندی از دست رفته در وردپرس استفاده از پلاگین Scheduled Post Trigger است.
این پلاگین بعد از هر بازدید وبسایت را بررسی میکند. بعد از بررسی اگر متوجه منتشر نشدن پستی شده باشد سریعا آن را منتشر میکند. در پلاگین Scheduled Post Trigger بازدید از وبسایت و انتشار پستها با هم در ارتباط مستقیم هستند.
برای راه اندازی این پلاگین ابتدا آن را از وبسایت رسمی وردپرس دانلود کنید. بعد از دانلود تنها کافی است که آن را نصب و فعال کنید. بعد از نصب هیچ نیازی به تغییر تنظیمات نیست. پلاگین Scheduled Post Trigger به محض فعال شدن شروع به کار میکند.
بررسی کنید که کرونها غیرفعال نشده باشند
همان طور که اشاره کردیم یکی از دلایل برای مشکل زمانبندی از دست رفته در وردپرس اختلال در کرونهاست. کرونها در وردپرس وظیفه دارند که یک دستور مشخص را در یک بازه زمانی معین اجرا کنند. برای مثال، انتشار یک پست در ساعت و روز مشخص یکی از کارهایی است که کرونها انجام میدهند.
چطور میتوانید مطمئن شوید که کرونها غیرفعال نشدند و به درستی کار میکنند؟ اگر هم که غیرفعال هستند چطور میتوانید آنها را تعمیر کنید؟ خب، برای این کار میتوانید یک آزمایش ساده انجام دهید.
برای این کار کافی است یک پست جدید و آزمایشی در وردپرس ایجاد کنید. سپس برای انتشار این پست یک زمان مشخص تعیین کنید. از آن جایی که قرار است نتیجه آزمایش را سریع ببینیم پس زمان آن را بر روی چند دقیقه بعد از ساخت پست تنظیم کنید.
اگر که کرونهای وردپرس به درستی کار کنند، این پست آزمایشی طبق برنامه زمانی که مشخص کردهاید منتشر میشود. اما همیشه همه چیز طبق انتظار پیش نمیرود و ممکن است با خطای missed schedule مواجه شوید. همان طور که مشخص است این خطا نشان دهنده درست کار نکردن کرونهاست.
خب، وقت آن است به سراغ راه حلهای برطرف کردن خطای missed schedule برویم.
اولین راهکاری که میتوانید به سراغ آن بروید بررسی فایل wp-config.php است. این فایل را از کنترل پنل هاستتان پیدا کنید و آن را در ادیتوری متنی باز کنید. سپس به دنبال خط زیر باشید:
define(‘DISABLE_WP_CRON’, true)
اگر مقدار آن بر روی true تنظیم شده باشد کرونها غیرفعال هستند. اگر که مقدار آن بر روی False تنظیم شده باشد کرونها باید به درستی کارشان را انجام دهند.
همچنین میتوانید در صورت مشاهده این خط کد را از فایل wp-config حذف کنید. از طرفی خودتان میتوانید این مقدار را تغییر دهید. فقط فراموش نکنید بعد از اعمال تغییرات حتما فایل جدید را ذخیره کنید.
بررسی کنید که تنظیمات سرور و وردپرس با هم تداخل نداشته باشند
برخی از سرویس دهندگان هاست تنظیماتی روی سرورهای خود دارند که با تنظیمات پیش فرض وردپرس سازگار نیستند. به طوری که باعث میشوند تنطیمات پیش فرض کرونها غیرفعال شوند و در کارشان اختلال به وجود بیاید. در این حالت میتوانید از دستورات جایگزین استفاده کنید.
برای این کار ابتدا باید تنطیمات پیش فرض کرونهای وردپرس را غیرفعال کنید و تنظیمات جایگزین را فعال کنید. تنها کافی است که دستورات زیر را به فایل wp-config.php هاستتان اضافه کنید:
define ('DISABLE_WP_CRON', true);
define('ALTERNATE_WP_CRON', true);
راه حل دائمی: جابجایی مدیریت کرونها از وردپرس به سطح سرور
همان طور که گفتیم استفاده از پلاگین یک روش دائمی برای حل مشکل زمانبندی از دست رفته در وردپرس نیست.
راه حل دائمی جابجایی مدیریت کرونها از وردپرس به سطح سرور است. چطور؟ خب، ابتدا باید ببینید که سرویس دهنده هاستتان اجازه دسترسی به تنظیمات را برایتان صادر کرده است یا نه؟ برای این کار با پشتیبانی تماس بگیرید و بخواهید این اجازه را برایتان صادر کند.
مرحله بعدی این است که تنظیمات پیش فرض کرونها در وردپرس را غیرفعال کنید. زیرا این دو روش در کنار هم باعث ایجاد اختلال در فرایند کاری میشوند. برای غیرفعال کردن تنظیمات کرونها کافی است که دستور زیر را به فایل wp-config.php اضافه کنید:
define('DISABLE_WP_CRON', true);
در مرحله بعدی در کنترل پنل هاستتان به دنبال Cron jobs بگردید. این عنوان در یکی از بخشها (عموما advanced) قرار دارد. در این قسمت میتوانید تنظیمات کرون دستی را وارد کنید و یک کرون جدید تعریف کنید.
برای تعریف یک کرون جدید دستور زیر را وارد کنید:
wget -O /dev/null http://yourwebsite.com/wp-cron.php?doing_wp_cron
بعد از این کار باید برای کرون جدیدی که تعریف کردهاید زمان مشخص کنید. این عدد مدت زمانی است که کرون وبسایت را برای پستهای زمابندی شده اسکن میکند.
بهترین زمان هر ۵ دقیقه است. زیرا در مدت زمان کمتر – برای مثال هر ۱ دقیقه تعداد درخواستهایی که به سرور ارسال میشود هم افزایش پیدا میکند.
حل پیام زمانبندی از دست رفته با استفاده از پلاگین WP Missed Scheduled Plugin
افزونه دیگری به نام WP Missed Scheduled Plugin برای حل مشکل زمانبندی از دست رفته در وردپرس وجود دارد. این پلاگین در یک بازه زمانی مشخص (هر ۱۵ دقیقه) وبسایت را بررسی میکند و اگر پستی در زمان معین منتشر نشده باشد، آن را منتشر میکند. این پلاگین میتواند ۲۰ پست را به صورت همزمان منتشر کند
تفاوت اصلی دو پلاگین Scheduled Post Trigger و WP Missed Scheduled Plugin در نحوه زمانبندی است. پلاگین WP Missed Scheduled Plugin در بازه زمانی ۱۵ دقیقه وبسایت را بررسی میکند. اما پلاگین Scheduled Post Trigger بعد از بازدید یک کاربر از وبسایت آماده به کار میشود. یعنی در صورت نداشتن ترافیک کافی در وبسایت ممکن است این پلاگین به درستی عمل نکند.
بعد از نصب پلاگین WP Missed Scheduled Plugin، نیازی به ایجاد تغییر در تنظیمات نیست و این پلاگین بعد از نصب سریعا آماده به کار است. به یاد داشته باشید که افزونهی WP Missed Scheduled Plugin در وبسایت رسمی وردپرس قابل دسترسی نیست. اما خوشبختانه این پلاگین در گیت هاب در دسترس عموم قرار گرفته است و میتوانید از آنجا برای دانلود آن اقدام کنید.
نتیجهگیری
عدم منتشر شدن پستهای وبسایت وردپرسی میتواند عواقب جدی برای کسب و کارتان به همراه داشته باشد. در صورتی که کاربران شما شاهد فعالیت مداوم شما و بهروزرسانی در وبسایت نباشند، ممکن است که اعتماد خود را نسبت به برند و نام تجاری شما از دست بدهند.
تمامی اینها به کمرنگ شدن نام برند شما در بازار منجر میشود، که بدون شک با هدف شما در تضاد است. با استفاده از هر دوی این پلاگینها میتوانید با خیال راحت از پست شدن مطالب در بازهی زمانی مشخص مطمئن باشید. بدون اینکه نگران اختلال در عملکرد Cronها در وردپرس باشید.