WPML

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

عند تسجيل أنواع المنشورات المخصصة يدوياً، يمكنك تعيين معرّف نصي للرابط مميز للأرشيف باستخدام دالة has_archive.

يتيح WPML تعيين has_archive كسلسلة نصية. ومع ذلك، إذا تم تعيين قيمة السلسلة النصية إلى شيء آخر غير rewrite['slug'], أو لم يتم تعيين المعرّف النصي للرابط لاسم نوع المنشور المخصص، فلن يكون المعرّف النصي للرابط للأرشيف قابلاً للترجمة.

تعيين معرّف نصي للرابط قابل للترجمة


في مثال الكود هذا، قمنا بتعيين 'has_archive' => true. بافتراض أن المعرّف النصي للرابط book قد تُرجم إلى libro في الإسبانية، ستكون روابط الأرشيف على النحو التالي:

  • الإنجليزية (اللغة الافتراضية): http://mydomain.tld/book/

  • الإسبانية (اللغة الثانوية): http://mydomain.tld/es/libro/

	 	 
add_action( 'init', 'create_post_type' );	 	 
function create_post_type() {	 	 
   register_post_type( 'book',	 	 
      array(	 	 
         'labels' => array(	 	 
            'name' => __( 'Books', 'textdomain' ),	 	 
            'singular_name' => __( 'Book', 'textdomain' )	 	 
         ),	 	 
         'public' => true,	 	 
         'has_archive' => true,	 	 
         'publicly_queryable' => true,	 	 
         'exclude_from_search' => false,	 	 
         'show_ui' => true,	 	 
         'show_in_menu' => true,	 	 
         'query_var' => true,	 	 
         'rewrite' => array('slug' => 'book'),	 	 
         'supports' => array('title','editor', 'custom-fields','thumbnail')	 	 
      )	 	 
   );	 	 
}	 	 

تعيين المعرّف النصي للرابط نفسه في اللغتين الافتراضية والثانوية

في مثال الكود هذا، قمنا بتعيين سلسلة نصية محددة للمعلمة 'has_archive' => 'my-books'. الآن أصبحت روابط الأرشيف على النحو التالي:
  • الإنجليزية (اللغة الافتراضية): http://mydomain.tld/my-books/
  • الإسبانية (اللغة الثانوية): http://mydomain.tld/es/my-books/
	 	 
add_action( 'init', 'create_post_type' );	 	 
function create_post_type() {	 	 
   register_post_type( 'book',	 	 
      array(	 	 
         'labels' => array(	 	 
            'name' => __( 'Books', 'textdomain' ),	 	 
            'singular_name' => __( 'Book', 'textdomain' )	 	 
         ),	 	 
         'public' => true,	 	 
         'has_archive' => 'my-books', // Do not use the gettext functions for this parameter	 	 
         'publicly_queryable' => true,	 	 
         'exclude_from_search' => false,	 	 
         'show_ui' => true,	 	 
         'show_in_menu' => true,	 	 
         'query_var' => true,	 	 
         'rewrite' => array('slug' => 'book'),	 	 
         'supports' => array('title','editor', 'custom-fields','thumbnail')	 	 
      )	 	 
   );	 	 
}	 	 

استكشاف الأخطاء وإصلاحها للمعرّفات النصية للروابط القابلة للتخصيص


تتيح بعض القوالب والإضافات لمدير الموقع تعيين معرّفات نصية للروابط مخصصة لأنواع المنشورات المخصصة والتصنيفات المخصصة الخاصة بها.

إذا كانت المعرّفات النصية للروابط المخصصة المترجمة تُرجع خطأ 404، فيُرجى التحقق مما يلي:


  • يجب تسجيل النوع المخصص دائماً بالمعرّف النصي للرابط نفسه عبر جميع الطلبات: لكل لغة، الواجهة الأمامية، الواجهة الخلفية، AJAX، heartbeat، إلخ. لذا في 'rewrite' => [ 'slug' => $my_custom_slug ], يجب ألا تتغير قيمة $my_custom_slug من طلب إلى آخر حتى لو كانت قادمة من خيار (أو أي إعداد مخصص).

  • يدعم WPML فقط ترجمة المعرّف النصي للرابط المخصص (عند تسجيل النوع المخصص) ولكن ليس بنية الروابط الدائمة المخصصة.

  • إذا تم تخزين المعرّف النصي للرابط المخصص كخيار، فلا ينبغي تسجيله كـ admin-texts في ملف wpml-config.xml.

  • بعد تحديث قيمة معرّف نصي للرابط مخصص، يجب على القالب/الإضافة أيضاً مسح قواعد إعادة الكتابة (عن طريق استدعاء flush_rewrite_rules();).

بقلم Amir · آخر تحديث 30 مايو 2024