كيفية اصلاح اخطاء انواع المقالات المخصصة 404 في ووردبريس

كيفية اصلاح اخطاء انواع المقالات المخصصة 404 في ووردبريس
آخر تحديث بتاريخ أبريل 26, 2024

مع إصدار ووردبريس 3.0، أصبحت القدرة على إضافة انواع المقالات المخصصة إلى قوالب ووردبريس الخاصة بك والتي تعد أداة قيمة للغاية وتم استخدمها في العديد من قوالب ووردبريس الاكثر شعبية. أصبحت أنواع المقالات المخصصة الأن شائعة للغاية وتستخدم في جميع قوالب ووردبريس الموجودة تقريبًا. ولكن من المحتمل أن أي شخص عمل مع أنواع المقالات المخصصة قد واجه الخطأ المروع 404 لم يتم العثور عليه عند محاولة الوصول إلى مقال من نوع المقال في وقت أو أخر. لحسن الحظ، يوجد دائمًا حل بسيط لإصلاح هذه الأخطاء.

لقد قمت أدناه بإدراج بعض المشكلات الأكثر شهرة التي يواجهها الأشخاص مع انواع المقالات المخصصة ولماذا قد يتلقون هذه الاخطاء. نأمل أن يساعدوا على الأقل عدد قليل من الأشخاص هناك.

تحقق من إعدادات الروابط الدائمة الخاصة بك

ربما يكون هذا أحد الأسباب الأكثر شهرة التي تجعل الأشخاص يحصلون على اخطاء 404 في انواع المقالات المخصصة وقد تعاملت معها عدة مرات. لقد رأيت العديد من الإصلاحات هناك مثل مسح قواعد إعادة الكتابة (التي لا نوصي بها) ولكن شخصيًا كنت محظوظًا بالإصلاح التالي ببساطة:

حل:

  • قم بتعيين بنية الرابط الدائم المخصص لك (مثل %postname%)
  • انقر فوق حفظ
  • تحقق مما إذا كانت صفحات النشر المخصصة الخاصة بك تعرض 404 صفحة خطأ
  • إذا فعلوا ذلك، فارجع وقم بتغيير الروابط الدائمة مرة أخرى إلى الوضع الافتراضي واحفظها
  • حاول الآن تعيين الرابط الدائم المخصص مرة أخرى واحفظه

عادة ما يساعد الرجوع ذهاب وإياب في إصلاح أخطائي وقد حققت نجاح كبيرًا بهذه الطريقة.

الآن، في بعض الخوادم (السيرفرات)، إذا لم يتم تعيين أذوناتك بشكل صحيح، فقد لا يعمل هذا وقد تضطر إلى تحديث ملف .htaccess يدويًا. للقيام بذلك، سيتعين عليك تسجيل الدخول إلى موقعك عبر FTP أو SFTP والمتصفح إلى دليل ووردبريس الجذري (نفس المكان الذي يوجد به ملف wp-config.php ومجلد wp-content). هنا يجب أن تجد ملف باسم .htaccess والذي يمكنك تعديله (إذا كنت لا تراه، فتأكد من أن برنامج FTP الخاص بك لديه خيار عرض الملفات المخفية ممكن، وإذا لم يكن هناك خيار، فقم بإنشاء واحد). تأكد الآن من أن الملف يحتوي على كود ووردبريس الأساسي كما هو مذكور في مستندات ووردبريس، والذي يبدو كالتالي:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

هام: إذا كنت تقوم بتعديل ملف htaccess موجود، فتأكد من عمل نسخة احتياطية للملف على جهاز الكمبيوتر الخاص بك أولاً في حالة حدوث أي خطأ.

التحقق من وجود تعارضات ثابتة (وجود صفحة بها نفس Slug نوع المقال الخاص بك)

الشيء الآخر الذي قد يتسبب في حدوث خطأ 404 هو أن لديك صفحة رئيسية لعرض مقال نوع المقال الخاص بك ولها نفس Slug النشر الفعلية الخاصة بك.

على سبيل المثال، إذا كان لديك نوع مقال يسمى “بورتفوليو” ولديك أيضًا صفحة “بورتفوليو” رئيسية مع كل من “البورتفوليو” الدائم (وبعبارة أخرى، للوصول إلى مقال البورتفوليو، يمكنك الانتقال إلى yoursite.com/portfolio/sample- post) يؤدي هذا إلى إنشاء تعارض يسبب أخطاء 404 في مقالات نوع المقال الفردي. لهذا السبب تجد غالبًا أن نوع مقال البورتفوليو يستخدم “المشاريع” أو “عنصر البورتفوليو” للحلقة المفردة.

حل:

  • يمكنك تغيير اسم الصفحة بحيث يكون مختلف عن نوع المقال المخصص
  • يمكنك تغيير سبيكة (Slug) النشر المخصصة الخاصة بك والتي يتم ذلك عن طريق تغيير معلمة إعادة الكتابة عند تسجيل نوع المقال المخصص الخاص بك

3. قواعد إعادة الكتابة التلقائية (للمطورين)

سبب أخر لاخطاء 404 هو أنه عندما يتم تسجيل نوع مقال جديد، يتعين عليك “مسح” قواعد إعادة الكتابة الخاصة بك في ووردبريس. يمكن القيام بذلك عن طريق الانتقال إلى الإعدادات > الروابط الدائمة والنقر على زر الحفظ (المذكور في القسم الأول من هذا المقال).

إذا كنت تعمل على قالب مخصص أو اضافة مع انواع المقالات مسجلة، فقد ترغب في التفكير تلقائيًا في مسح قواعد إعادة الكتابة للمستخدم النهائي الخاص بك عندما يقوم بتنشيط القالب أو الاضافة الخاص بك لمنع أي اخطاء 404. فيما يلي مثال على الكود الذي يمكنك استخدامه:

// Code for themes
add_action( 'after_switch_theme', 'flush_rewrite_rules' );

// Code for plugins
register_deactivation_hook( __FILE__, 'flush_rewrite_rules' );
register_activation_hook( __FILE__, 'myplugin_flush_rewrites' );
function myplugin_flush_rewrites() {
	// call your CPT registration function here (it should also be hooked into 'init')
	myplugin_custom_post_types_registration();
	flush_rewrite_rules();

هل لديك خطأ أو حل أخر؟

إذا كان لديك خطأ أخر أو كان لديك حل أفضل، فيرجى التعليق أدناه وإخباري بذلك. لن يساعدني ذلك فحسب، بل من المحتمل أن يساعد الأشخاص الأخرين الذين يبحثون عن حل لمشكلتهم. شكرًا!

Mahmoud Hegazy

محمود هو الرئيس التنفيذي ومؤسس دكتورميجا. لقد شارك في تطوير وتصميم العديد من مواقع ووردبريس المختلفة لأكثر من ستة عشر عاما.

اترك تعليقاً