رفع خطای «عدم توانایی در به‌روزرسانی نوشته در در پایگاه‌ داده» هنگام انتشار نوشته

هر خطایی که در وردپرس می‌بینید، می‌تواند علت خاص خودش را داشته باشد. برخی از خطاها به قدری پیچیده هستند که یافتن علت آنها کار ساده‌ای نیست. اما شاید با کمی جستجو در اینترنت به سرنخی رسیدید که بتواند شما را در یافتن راه حل کمک کند. این مقاله را هم با این هدف نوشتیم تا شاید بتواند به شما سرنخی برای رفع خطای عدم توانایی در به‌روزرسانی نوشته در در پایگاه‌ داده ، هنگام انتشار نوشته در وردپرس روی ویرایشگر Block بدهد. با ما همراه باشید.

خطای عدم توانایی در به‌روزرسانی نوشته در در پایگاه‌ داده

اگر وردپرس شما فارسی باشد، این خطا را مشاهده خواهید کرد:

انتشار ناموفق بود. عدم توانایی در به‌روزرسانی نوشته در در پایگاه‌ داده.

اما اگر وردپرس شما انگلیسی باشد این:

Updating failed. Could not update post in the database.

به طور کلی دلیل اصلی بروز این خطا این است که صفحه‌ای از پیشخوان وردپرس که روی مرورگر شما باز است، نمی‌تواند با REST API وردپرس ارتباط برقرار کند. REST API در اصل یک راهکار ارتباطی با وردپرس با برنامه نویسی است. راجع به آن در مستندات وردپرس خیلی چیزها گفته شده. از آنجایی هم که ویرایشگر بلاک یا block editor وردپرس با REST API کار می‌کند‌، اگر این ارتباط برقرار نشود، این خطا را دریافت خواهد کرد که وردپرس نمی‌تواند چیزی روی پایگاه داده بنویسد.

حالا برویم ببینیم چرا باید این طور شود!

قطع شدن اتصال اینترنت شما

اولین و ساده ترین احتمال این است که اتصال شما به اینترنت قطع شده است. یا حداقل ممکن است بنابه دلایلی مثل بحث فیلترینگ هوشمند و غیره، دسترسی به سروری که سایت شما روی آن قرار گرفته است، مثلا از داخل کشور برای مدتی یا حتی دائمی قطع شده باشد. دلایل قطعی زیاد است اما با روش‌های مختلفی می‌توانید این اتصال را بررسی کنید که آیا برقرار هست یا خیر. اگر بروز این خطا موقتی است و بعد از مدتی ممکن است که خود به خود رفع شود، علت همین مورد می‌تواند باشد.

یک سربرگ دیگر باز کنید و وارد صفحهٔ اصلی یا پیشخوان وردپرس خود شوید. اگر باز شد که مشکل از جای دیگری است. مثلا ممکن است نشانی سایت درون تنظیمات وردپرس اشتباه تنظیم شده باشد که شاید ناخواسته این اتفاق رخ داده! یا حتی خرابکاری است!! پس به تنظیمات عمومی وارد شوید و نشانی سایت را چک کنید که با دامنهٔ سایت شما یکی باشد.

بررسی صحت نشانی سایت در تنظیمات وردپرس

اگر این مورد هم مشکلی نداشت، به سراغ مورد بعدی بروید.

یک آموزش جذاب دیگه!  رفع خطای ۵۰۳ Service Unavailable در وردپرس

وضعیت REST API را از بخش سلامت سایت بررسی کنید

به بخش سلامت سایت از مجموعه صفحات ابزارهای وردپرس مراجعه کنید و صبر کنید تا صفحه به طور کامل بارگذاری گردد. در قسمت «مشکل بحرانی» اگر دیدید که مشکلی در رابطه با REST API گزارش کرده است، چون ویرایشگر بلاک وردپرس با همین REST API کار میکند، قطعا مشکل از همین عامل می‌تواند باشد. باید ببینید که چه چیزی باعث شده است که دسترسی به REST API از طرف ویرایشگر بلاک وردپرس مسدود شده است. ممکن است باز هم یک افزونه یا قالب فعال روی سایت شما این مشکل را ایجاد کرده است.

همهٔ افزونه‌های وردپرس را غیرفعال کنید

اگر به هر طریقی افزونه‌ای از افزونه‌های نصب و فعال شدهٔ روی سایت شما باعث این خطا شده است، بهتر است که ابتدا تمامی افزونه‌ها را از پیشخوان غیرفعال کنید و یک تست بگیرید. اگر خطا برطرف شد، پس یکی از افزونه‌ها مشکل ساز است. باید یکی یکی افزونه‌ها را فعال کنید و همین تست را تکرار کنید. اگر مشکل پدیدار شد، مشکل از همان افزونه‌ای است که آخرین بار فعال کردید.

اگر آن افزونه یک افزونهٔ سفارشی است باید در کدهای آن تجدید نظر کنید. اگر نسخهٔ جدیدی از آن هست باید آن را آپدیت نمایید. اگر آخرین نسخه از افزونه را روی وردپرس نصب دارید، باید از یک افزونهٔ جایگزین دیگر استفاده کنید.

بررسی سرویس فایروال سایت

چه از یک افزونهٔ فایروال روی وردپرس‌تان استفاده کردید و چه از سرویس‌های ابری مثل کلود فلیر به عنوان یک سد امنیتی (فایروال) استفاده می‌کنید، به هر حال ممکن است دسترسی به آی‌پی شما مسدود شده باشد؛ حداقل برای دسترسی به REST API. گاهی از اوقات هم به علت حملاتی مثل DDOS کل دسترسی به REST API روی سایت شما برای مدتی مسدود می‌شود که چنین خطایی را حین ذخیرهٔ نوشته در دیتابیس وردپرس دریافت خواهید کرد.

یک آموزش جذاب دیگه!  رفع خطای Allowed Memory Exhausted در وردپرس

در اولین فرصت آی‌پی‌تان را درون فایروال چک کنید که مسدود نشده باشد. همچنین دقت داشته باشید که به علت حملات روی سایت کل REST API غیرفعال نشده باشد. بهترین کار این است که فایروال را غیرفعال کنید و ببینید که آیا مشکل حل شده یا خیر.

فعال کردن حالت رفع ایراد وردپرس

یکی از بهترین کارهایی که در مواجه با هر نوع خطای وردپرس میتوان انجام داد، فعال کردن حالت دیباگ یا رفع ایراد است. در این حالت گزارش‌های بیشتری خروجی داده می‌شود که در عیب‌یابی به شما کمک بیشتری خواهند کرد. برای این منظور کدهای زیر را درون فایل wp-config.php جایگذاری نمایید.

// Change WP_DEBUG to true
define( 'WP_DEBUG', true );
// Keep a log of WordPress errors
define( 'WP_DEBUG_LOG', true );

حالا باید به لاگ هایی که در جاهای مختلف از جمله فایل Log ای که در پوشهٔ‌/wp-content/ وردپرس ذخیره می شود (debug.log) مراجعه کنید و آنها را مطالعه کنید. معمولا باید نامی از افزونه یا قالبی که مشکل ساز شده است مشاهده کنید.

تغییر به قالب پیش فرض

کاری که با افزونه‌ها انجام دادیم که متوجه شویم آیا مشکل از آنها است یا خیر را باید با قالب سایت هم انجام دهیم. یکی از قالب‌های پیش فرض وردپرس را روی سایت فعال کنید و ببینید که آیا مشکل حل می‌شود یا خیر. گاهی اوقات تابع‌هایی که در قالب استفاده می‌شود ممکن است عملکرد REST API را مختل کنند.

اگر قالب سایت شما قدیمی باشد و از بلاک های ویرایشگر وردپرس پشتیبانی نکند، به احتمال زیاد مشکل از همین جا است. بهترین کار این است که ویرایشگر کلاسیک را فعال کنید و با آن یک تست بگیرید. متوجه خواهید شد که مشکل برطرف می‌گردد.

درخواست پشتیبانی بگیرید!

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

۱۴۰۲/۰۷/۰۱

هک وردپرس
بدون دیدگاه

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

آموزش جامع وردپرس

آموزش نصب وردپرس روی لوکال هاست

آموزش افزونه Yoast SEO

درباره ®WPTutorial

WPTutorial یکی از منابع آموزشی جامع و رایگان وردپرس می باشد، که هدف اصلی خودش را به اشتراک گذاری تجربه های وردپرسی و افزایش دانش وبمسترهای فارسی زبان قرار داده است. بر همین اساس هر روزه سعی در انتشار آموزش ها، ترفندها و هک های وردپرس می کند، تا شما بتوانید سایت تان را هر روز بهبود ببخشید.