خیلیهامون با عشق و علاقه محتوا تولید میکنیم و میخوایم اون رو توی یه زمان مشخص به صورت خودکار روی سایتمون منتشر کنیم. اما وقتی خطای معروف خطا در ارسال پست برنامهریزی شده میاد، دیگه همون موقع اعصابمون داغون میشه!
اگه دنبال یه راهنمای کامل، ساده برای نحوه رفع خطای ارسال پست برنامه ریزی شده توی وردپرس هستی، جای درستی اومدی. تو این مقاله از سایت رامون طالع، قدم به قدم و با زبون خودمونی قراره این مشکل رو حل کنیم. پس تا آخر با من باش!
عنوان های این مقاله
اصلاً این خطای ارسال پست برنامهریزی شده یعنی چی؟
وقتی شما یه نوشته رو توی وردپرس زمانبندی میکنی یا به قول خودمون زماندار میکنی، وردپرس موظفه سر رسید مشخص شده پست رو بهصورت خودکار منتشر کنه. اما بعضی وقتا این اتفاق نمیوفته و وقتی سر موعد مقرر سراغ پستت میری، میبینی خبری از پست نیست و پیغام خطا در ارسال پست برنامهریزی شده روی صفحه میپره. این یعنی اینکه فرآیند زمانبندی وردپرس نتونسته وظیفهش رو انجام بده و پستت سر وقت آپ نمیاد.
این خطا میتونه اعصاب خوردکن باشه، بهخصوص برای کسانی که به صرفهجویی در زمان و انتشار منظم محتوا خیلی اهمیت میدن. پس بیاید ببینیم چه چیزایی ممکنه باعث بشه و اصلاً نحوه رفع خطای ارسال پست برنامه ریزی شده چیه.
دلیل اصلی این خطا چیه؟ چرا پست سر وقت نمیره بالا؟

در اصل وردپرس برای انتشار پستهای زمانبندیشده به یک سیستم داخلی به اسم WP-Cron متکیه. این سیستم با هر بار باز شدن صفحه توسط کاربر، بررسی میکنه که آیا کار زمانبندی شدهای هست یا نه. اگر سیستم کرون مشکل پیدا کنه، دیگه اون وظیفه سر وقت انجام نمیشه.
علاوه بر این، افزونههای کش معمولا تمام درخواستها رو قبل از رسیدن به وردپرس نگه میدارن و گاهی باعث میشن WP-Cron اجرا نشه. از طرف دیگه برخی هاستینگها بهخاطر تنظیمات سرور، اجرای خودکار کرونهای داخلی وردپرس رو محدود میکنن. حتی بعضی افزونهها ممکنه بهصورت ناخواسته با عملکرد کرون وردپرس تداخل داشته باشن. در مواردی هم تنظیمات اشتباه در فایل wp-config.php
میتونه باعث بشه کرون سر جای خودش اجرا نشه. حالا میخوایم نحوه رفع خطای ارسال پست برنامه ریزی شده رو در عرض چند مرحله یاد بگیریم.

راه حل اول: استفاده از افزونه Scheduled Post Trigger
یکی از راحتترین و سریعترین روشها برای حل مشکل زمانی که وردپرس پست زمانبندیشده رو سر وقت منتشر نمیکنه، نصب یک افزونه سبک و ساده به نام Scheduled Post Trigger هست. این افزونه هر بار که یک بازدید از سایت انجام میشه، بررسی میکنه آیا پست زمانبندی شدهای وجود داره یا نه. اگه باشه، وظیفه کرون رو شبیهسازی میکنه و پست منتشر میشه.
بعد از نصب و فعالسازی افزونه، دیگه لازم نیست نگران اجرای WP-Cron توسط بازدیدکنندهها باشی. تا وقتی که فقط یک کاربر یا ربات سئو هم وارد صفحهای از سایتت بشه، افزونه پستهای زمانبندیشده رو سر وقت منتشر میکنه. این سادهترین پاسخ به سوال نحوه رفع خطای ارسال پست برنامه ریزی شدهه.
راه حل دوم: غیر فعال کردن کش (موقتی)
خیلی از افزونههای کش مثل WP Super Cache یا W3 Total Cache طوری تنظیم میشن که صفحهها رو پیش از رسیدن به وردپرس کش میکنن تا سرعت لود سایت بالا بره. اما این کار گاهی مانع از اجرای کرون داخلی وردپرس میشه. بهترین کار اینه که موقتا افزونه کشت رو غیرفعال کنی و تست کنی آیا مشکل نحوه رفع خطای ارسال پست برنامه ریزی شده رفع شده یا نه.
وقتی کش رو خاموش میکنی، درخواست بهصورت مستقیم وارد وردپرس میشه و WP-Cron میتونه بدون مشکل اجرا بشه. اگه دیدی پست زمانبندیشده منتشر شد، میفهمی که افزونه کش تداخلی ایجاد کرده. تو مرحله بعد باید تنظیمات کشرو دقیقتر بچینی یا یه افزونه دیگه با قابلیت تنظیمات پیشرفتهتر انتخاب کنی.
راه حل سوم: تنظیم دستی کرون جاب در هاست
اگه با تنظیمات هاست آشنایی داری و حاضری کمی دست به کد بشی، میتونی کرون جاب داخلی وردپرس رو غیرفعال کنی و بهجاش یک کرون جاب برای اسکریپت wp-cron.php
روی سرور تنظیم کنی. این کار باعث میشه کرون بدون وابستگی به بازدیدکننده و با دقت بیشتری اجرا بشه.
در کنترل پنل هاست (مثلاً cPanel) وارد بخش Cron Jobs شو و یک کرون جاب جدید تنظیم کن. دستور زیر رو تو کادر فرمان وارد کن:
wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
بازه اجرای این کرون جاب رو میتونی هر ۵ دقیقه یا هر ۱۰ دقیقه تنظیم کنی تا فاصله انتشار پستها خیلی زیاد نشه. بعد از تنظیم این کرون جاب، فراموش نکن کد زیر رو تو فایل wp-config.php
اضافه کنی تا کرون داخلی وردپرس غیرفعال بشه:
define('DISABLE_WP_CRON', true);
با این روش محکم، دیگه خیالت راحت از بابت رفع خطای ارسال پست برنامه ریزی شده خواهد بود.
راه حل چهارم: بررسی افزونههای متناقض
گاهی تداخل افزونهها باعث میشه که یکی از اونها بهطرز ناخواستهای عملکرد WP-Cron یا سایر بخشهای زمانبندی وردپرس رو مختل کنه. برای شناسایی افزونه مخرب، بهتره همه افزونهها رو غیرفعال کنی و سپس یکییکی فعال کنی.
بعد از غیرفعال کردن، یک پست زمانبندی شده تست کن. اگر پست منتشر شد، مشخص میشه مشکل از یکی از افزونههاست. حالا افزونهها رو تک به تک فعال کن و بعد از هر فعالسازی تست انتشار پست زمانبندیشده رو انجام بده تا زمانی که افزونه مقصر رو بیابی. پس از پیدا کردن، بهتره افزونه رو با یک جایگزین معتبر عوض کنی یا از پشتیبانی توسعهدهنده کمک بگیری.

این روش بهخصوص وقتی که همه راههای دیگه جواب نداده باشن، حرف اول رو میزنه و نقطه قوتش اینه که دقیقاً مقصر رو پیدا میکنی.
نتیجهگیری جامع
حالا که دیگه با انواع روشها آشنا شدی، میتونی بدون نگرانی از خطای ارسال پست برنامه ریزی شده استفاده کنی. ترتیب کاریش اینه: اول افزونه Scheduled Post Trigger نصب کن و ببین مشکل حل شده یا نه. اگر نشد، کش رو موقتا خاموش کن و بررسی کن. بعدش کرون جاب دستی هاست رو تنظیم کن و فایل wp-config.php
رو ویرایش کن. در نهایت اگر هنوز دچار مشکل بودی، افزونهها رو یکبهیک چک کن تا مقصر اصلی رو شناسایی کنی.
با این مراحل، محتوای زمانبندیشدهات بیمشکل و بهموقع منتشر میشه و دیگه لازم نیست هر بار سر موعد پست دستی منتشر کنی. موفق باشی! اگر سوالی داشتی یا کمکی خواستی، حتماً زیر همین مقاله کامنت بذار.
سوالات متداول
چرا گاهی وردپرس پستهای زمانبندیشده را بهموقع منتشر نمیکند؟
اصلیترین دلیل ناکارآمدی زمانبندی وردپرس، مشکل در اجرای کرون داخلی (WP-Cron) است. افزونههای کش یا تنظیمات نادرست سرور ممکن است مانع اجرای صحیح کرون شوند. برای حل این مشکل، باید راهکارهای موجود برای نحوه رفع خطای ارسال پست برنامه ریزی شده را بررسی و یکییکی اجرا کنید.
چگونه متوجه شوم که مشکل از افزونههای کش است یا کرون وردپرس؟
بهترین روش این است که افزونه کش خود را موقتا غیرفعال کنید و یک پست زمانبندیشده تستی بنویسید. اگر پست سر وقت منتشر شد، یعنی کش باعث اختلال در به وجود اومدن خطای ارسال پست برنامه ریزی شده است.
آیا همیشه نیاز به نصب افزونه اضافی برای نحوه رفع خطای ارسال پست برنامه ریزی شده هست؟
نه. در برخی موارد با تنظیم کرون جاب دستی در هاست یا بهینهسازی فایل wp-config.php بدون نصب هیچ افزونهای میتوانید مشکل را رفع کنید. ابتدا سادهترین روشها را تست کنید و در صورت نیاز افزونه نصب کنید.
تنظیم کرون جاب در کنترل پنل هاست چه مزیتی دارد؟
با تنظیم کرون جاب منظم (مثلاً هر ۵ دقیقه)، سامانه زمانبندی وردپرس بدون وابستگی به بازدیدکننده اجرا میشود و احتمال خطا در ارسال پست برنامه ریزی شده به حداقل میرسد.
اگر بعد از همه روشها هنوز مشکل پابرجا بود، چه کاری انجام دهم؟
در این مرحله باید تمام افزونهها را غیرفعال کرده و سپس بهتدریج فعال کنید تا افزونه مشکلساز شناسایی شود. همچنین بررسی گزارشهای خطا در هاست و ارتباط با پشتیبانی فنی میتواند کمککننده باشد.