مع إصدار WordPress 3.0 جاءت القدرة على إضافة “أنواع المنشورات المخصصة” إلى سمات WordPress الخاصة بك والتي تعد أداة قيمة للغاية وقد استخدمتها في العديد من قوالب WordPress التي قمت بإنشائها. أصبحت أنواع المنشورات المخصصة الآن شائعة للغاية وتستخدم في كل سمة WordPress تقريبًا. ولكن أي شخص منهم وقد عملت مع أنواع آخر مخصص وربما واجه د ص eadful 404 خطأ لم يتم العثور عند محاولة الوصول إلى وظيفة من بعد نوع في وقت واحد أو آخر. لحسن الحظ ، يوجد دائمًا حل بسيط لإصلاح هذه الأخطاء.
أدرجت أدناه بعض المشكلات الأكثر شيوعًا التي يواجهها الأشخاص مع أنواع المنشورات المخصصة ولماذا قد يتلقون هذه الأخطاء. نأمل أن يساعدوا على الأقل عددًا قليلاً من الناس هناك.
1. تحقق من إعدادات الرابط الثابت
ربما يكون هذا أحد الأسباب الأكثر شيوعًا التي تجعل الأشخاص يحصلون على أخطاء 404 في أنواع منشوراتهم المخصصة وقد تعاملت معها عدة مرات. لقد رأيت العديد من الإصلاحات مثل التخلص من قواعد إعادة الكتابة (التي لا أوصي بها) ولكن شخصيًا كان حظي أفضل مع الإصلاح التالي ببساطة:
المحلول:
- قم بتعيين هيكل الرابط الثابت المخصص الخاص بك (مثل٪ postname٪)
- انقر فوق حفظ
- تحقق مما إذا كانت صفحات النشر المخصصة الفردية الخاصة بك تعرض صفحات خطأ 404
- إذا فعلوا ذلك ، فارجع وقم بتغيير الروابط الثابتة إلى الوضع الافتراضي وحفظها
- الآن حاول تعيين الرابط الثابت المخصص مرة أخرى وحفظه
عادةً ما يساعد التنقل ذهابًا وإيابًا في إصلاح أخطائي وقد حققت نجاحًا كبيرًا بهذه الطريقة.
الآن ، في بعض الخوادم ، إذا لم يتم تعيين أذوناتك بشكل صحيح ، فقد لا يعمل هذا وقد تضطر إلى تحديث ملف htaccess الخاص بك يدويًا. للقيام بذلك ، سيتعين عليك تسجيل الدخول إلى موقعك عبر FTP أو SFTP والمتصفح إلى دليل WordPress الجذر (نفس المكان الذي يوجد فيه ملف wp-config.php ومجلد wp-content). هنا يجب أن تجد ملفًا باسم .htaccess يمكنك تعديله (إذا كنت لا ترى ذلك ، فتأكد من أن برنامج FTP لديك لديه خيار عرض الملفات المخفية ممكّنة وإذا لم يكن هناك ملف ، فقم بإنشاء واحد). تأكد الآن من أن الملف يحتوي على كود WordPress الأساسي كما هو مذكور في مستندات WordPress ، والتي تبدو كالتالي:
# 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 موجود ، فتأكد من عمل نسخة احتياطية من الملف على جهاز الكمبيوتر الخاص بك أولاً في حالة تعطل أي شيء.
2. تحقق من وجود تعارضات في الارتباطات الثابتة (وجود صفحة بها نفس الارتباط التقريبي مثل نوع مشاركتك)
الشيء الآخر الذي قد يتسبب في حدوث خطأ 404 هو أن لديك صفحة رئيسية لعرض منشور نوع المنشور الخاص بك وله نفس الارتباط التقريبي مثل نوع المنشور الفعلي slug المفرد. على سبيل المثال ، إذا كان لديك نوع منشور باسم “المحفظة” ولديك أيضًا صفحة “Portfolio” رئيسية بها “محفظة” (بمعنى آخر للوصول إلى منشور في المحفظة ، فانتقل إلى site.com/portfolio/sample- post) يؤدي هذا إلى حدوث تعارض يتسبب في أخطاء 404 في منشوراتك من نوع المنشور الفردي. لهذا السبب غالبًا ما تجد أن نوع منشور الحافظة يستخدم “مشروعات” أو “عنصر محفظة” للارتفاع الثابت المفرد.
المحلول:
- يمكنك تغيير اسم الصفحة بحيث يكون مختلفًا عن نوع المنشور المخصص
- يمكنك تغيير slug المخصص لنوع المنشور الذي يتم عن طريق تغيير معامل إعادة الكتابة عند تسجيل نوع المنشور المخصص
3. قواعد إعادة الكتابة التلقائية (للمطورين)
سبب آخر لأخطاء 404 هو أنه كلما تم تسجيل نوع منشور جديد ، يجب عليك “مسح” قواعد إعادة الكتابة في WordPress. يمكن القيام بذلك من خلال الانتقال إلى الإعدادات> الروابط الثابتة والنقر على زر حفظ (المذكور في القسم الأول من هذه المشاركة).
إذا كنت تعمل على سمة مخصصة أو مكون إضافي مع أنواع منشورات مسجلة ، فقد ترغب في التفكير تلقائيًا في مسح قواعد إعادة الكتابة للمستخدم النهائي عند تنشيط السمة أو المكون الإضافي الخاص بك لمنع أي أخطاء 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();
}
هل لديك خطأ أو حل آخر؟
إذا كنت تواجه خطأ آخر أو كان لديك حل أفضل ، فيرجى التعليق أدناه وإعلامي. لن يساعدني ذلك فحسب ، بل سيساعد أيضًا الأشخاص الآخرين الذين يبحثون عن حل لمشكلتهم. شكر!