כאשר אתה רושם סוגי תוכן מותאמים אישית באופן ידני, 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();).