إصلاح مشكلة عدم ظهور زر النشر في ووردبريس بعد استيراد قاعدة البيانات
قد تواجه مشكلة في موقعك عند استيراد جداول لقاعدة بياناتك لا تستطيع نشر شيء على موقعك أو تحميل اضافة

يعاني بعض أصحاب مواقع ووردبريس بعد استيراد قاعدة البيانات أو نقل الموقع من استضافة إلى أخرى من مشاكل غريبة، مثل:
- اختفاء زر نشر أو تحديث داخل محرر المقالات.
- عدم القدرة على نشر أي مقال أو صفحة جديدة.
- تعطل أداة التخصيص (Customizer) أو اختفاء زر الحفظ.
- ظهور أخطاء أثناء تعديل المقالات.
- تعطل بعض إضافات ووردبريس بعد استيراد قاعدة البيانات.
- عدم حفظ التعديلات رغم الضغط على زر الحفظ.
وفي كثير من الحالات تكون المشكلة مرتبطة بجدول wp_posts داخل قاعدة البيانات.
سبب المشكلة
عند استيراد بعض الجداول بطريقة غير صحيحة أو استخدام أدوات استيراد لا تحافظ على بنية قاعدة البيانات، قد تتعرض قيم ID داخل جدول wp_posts للتلف.
ومن أكثر الأخطاء شيوعًا:
- وجود عدد كبير من السجلات بقيمة ID = 0.
- حذف المفتاح الأساسي (Primary Key).
- اختفاء خاصية AUTO_INCREMENT.
- فقدان بعض الفهارس (Indexes).
عند حدوث ذلك، يفقد ووردبريس القدرة على إنشاء معرفات جديدة للمقالات والصفحات، مما يؤدي إلى تعطل عملية النشر.
كيف تتأكد من وجود المشكلة؟
نفذ الاستعلام التالي:
SELECT COUNT(*)
FROM wp_posts
WHERE ID = 0;إذا ظهرت نتيجة أكبر من صفر، فهذا يعني أن هناك سجلات تملك معرفًا غير صحيح.
كما يمكنك التأكد من وجود المفتاح الأساسي:
SHOW CREATE TABLE wp_posts;محاولة إصلاح الجدول
تنبيه مهم: يجب أخذ نسخة احتياطية كاملة من قاعدة البيانات قبل تنفيذ أي أوامر.
إذا كانت المشكلة فقط في وجود سجلات تحمل ID = 0، فيمكن إعطاؤها معرفات جديدة:
SET @newid = (SELECT MAX(ID) FROM wp_posts);
UPDATE wp_posts
SET ID = (@newid := @newid + 1)
WHERE ID = 0
ORDER BY post_type, post_date;بعد ذلك يتم إعادة إنشاء المفتاح الأساسي والفهارس:
ALTER TABLE wp_posts
MODIFY ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (ID),
ADD KEY post_name (post_name(191)),
ADD KEY type_status_date (post_type, post_status, post_date, ID),
ADD KEY post_parent (post_parent),
ADD KEY post_author (post_author);هل هذا الحل آمن؟
ليس دائمًا.
إذا تم تغيير معرفات المقالات، فإن الجداول الأخرى مثل:
- wp_postmeta
- wp_term_relationships
- wp_comments
- wp_commentmeta
- wp_wc_orders (في ووكومرس)
- وغيرها
قد تبقى تشير إلى المعرف القديم (ID = 0) مما يؤدي إلى فقدان ارتباط البيانات.
لهذا السبب لا يُنصح بتنفيذ هذه الأوامر على المواقع المهمة دون نسخة احتياطية.
الطريقة الصحيحة للإصلاح
الحل الاحترافي لا يعتمد على تعديل جدول wp_posts فقط، بل يشمل:
- فحص سلامة جميع جداول ووردبريس.
- إعادة ترقيم المعرفات التالفة.
- تحديث جميع الجداول المرتبطة تلقائيًا.
- إعادة إنشاء المفاتيح الأساسية والفهارس.
- التأكد من عمل خاصية AUTO_INCREMENT.
- اختبار إنشاء مقال جديد بعد انتهاء الإصلاح.
وبهذه الطريقة تعود قاعدة البيانات إلى حالتها الطبيعية دون فقدان العلاقات بين البيانات.
نصائح لتجنب المشكلة مستقبلاً
- استخدم أدوات موثوقة لاستيراد قواعد البيانات مثل phpMyAdmin أو MySQL CLI.
- لا تستورد الجداول بشكل جزئي إلا عند الضرورة.
- احتفظ دائمًا بنسخة احتياطية قبل أي عملية استيراد.
- تحقق من بنية الجداول بعد الاستيراد، خاصة جدول wp_posts.
- تأكد من أن جميع المفاتيح الأساسية والفهارس ما زالت موجودة.
الخلاصة
اختفاء زر نشر أو تحديث في ووردبريس لا يعني دائمًا وجود مشكلة في القالب أو الإضافات، ففي بعض الحالات يكون السبب تلفًا في بنية قاعدة البيانات، وخصوصًا جدول wp_posts. لذلك يُنصح دائمًا بفحص معرفات السجلات والمفاتيح الأساسية قبل البدء في تعطيل الإضافات أو إعادة تثبيت ووردبريس.
الكلمات المفتاحية المستهدفة
- إصلاح قاعدة بيانات ووردبريس
- اختفاء زر النشر في ووردبريس
- حل مشكلة عدم نشر المقالات
- إصلاح جدول wp_posts
- مشكلة ID = 0 في WordPress
- إصلاح AUTO_INCREMENT
- إصلاح Primary Key
- إصلاح قاعدة بيانات WordPress بعد الاستيراد
- عدم ظهور زر تحديث المقال
- إصلاح مشاكل استيراد قاعدة البيانات
أتفهم أنك تريد حلًا مباشرًا، لكن لا أستطيع أن أعطيك أمرًا واحدًا وأقول “سيصلحها” لأن هناك خطرًا حقيقيًا على بيانات موقعك.
السبب: عندك 252 سجلًا كلها بـ ID = 0. إذا غيّرنا هذه المعرفات دون تحديث الجداول المرتبطة مثل wp_postmeta وwp_term_relationships، فقد تفقد ارتباطات المقالات والقوالب والمرفقات.
إذا أردت المحاولة مع أخذ نسخة احتياطية أولًا، فهذا الأمر سيعطي معرفات جديدة فقط للسجلات التي ID = 0:
SET @newid = (SELECT MAX(ID) FROM wp_posts);
UPDATE wp_posts
SET ID = (@newid := @newid + 1)
WHERE ID = 0
ORDER BY post_type, post_date;بعدها أضف المفتاح الأساسي والفهارس:
ALTER TABLE wp_posts
MODIFY ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (ID),
ADD KEY post_name (post_name(191)),
ADD KEY type_status_date (post_type, post_status, post_date, ID),
ADD KEY post_parent (post_parent),
ADD KEY post_author (post_author);لكن انتبه: هذا قد يجعل السجلات التي كانت ID=0 تحصل على معرفات جديدة، وأي مراجع لها في جداول أخرى ستظل تشير إلى 0. لذلك هذا ليس إصلاحًا مضمونًا، بل محاولة لاستعادة بنية الجدول.
إذا كان الموقع مهمًا أو إنتاجيًا
فالطريقة الصحيحة هي:
- أخذ نسخة احتياطية.
- إصلاح المعرفات مع تحديث جميع الجداول المرجعية (
wp_postmeta،wp_term_relationships، وغيرها) في نفس العملية.
هذا يحتاج سكربت إصلاح، وليس أمر SQL واحدًا.
اكتشاف المزيد من إشراق العالم
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.


