apply_filters( 'wpml_object_id', int $element_id, string $element_type, bool $return_original_if_missing, mixed $ulanguage_code )
- סוג
- filter
- קטגוריה
- אחזור תוכן מותאם מקומית
- גרסת WPML
- 3.2
תיאור
מחזיר מזהה (ID) של אלמנט בשפה הנוכחית או בשפה אחרת שצוינה.
כברירת מחדל, WPML מתאים אוטומטית את המזהים (ID) כדי להציג את כל האלמנטים של ערכת העיצוב בשפה הנוכחית. הגדרה זו מופעלת כברירת מחדל בעמוד WPML → שפות. אבל, אם אתה בונה ערכת עיצוב משלך מאפס, השתמש בפונקציה wpml_object_id כדי להתאים מזהים (ID) באופן ידני. גישה זו יעילה יותר מבחינת עיבוד.
ארגומנטים
- $element_id
- (int) (נדרש) המזהה (ID) של סוג הפוסט (פוסט, עמוד, קובץ מצורף, פוסט מותאם אישית) או מונח הטקסונומיה (תגית, קטגוריה, טקסונומיה מותאמת אישית) לסינון
- $element_type
- (string) (נדרש) סוג הרכיב שאליו שייך המזהה (ID). יכול להיות post, page, {custom post type key}, nav_menu, nav_menu_item, category, post_tag, {custom taxonomy key}
- $return_original_if_missing
- (bool) (אופציונלי) אם מוגדר כ־true הוא תמיד יחזיר ערך (הערך המקורי, אם התרגום חסר). ברירת המחדל היא FALSE
- $ulanguage_code
- (mixed) (אופציונלי) אם חסר או NULL, הוא ישתמש בשפה הנוכחית. אם מוגדר לקוד שפה, הוא יחזיר תרגום עבור קוד שפה זה או את המקור אם התרגום חסר ו־$return_original_if_missing מוגדר כ־TRUE. ברירת המחדל היא NULL
דוגמה לשימוש
כמה דוגמאות בסיסיות
// will return the post ID in the current language for post ID 1 echo apply_filters( 'wpml_object_id', 1, 'post' ); // will return the category ID in the current language for categoy ID 4. If the translation is missing it will return the original (here: category ID 4) echo apply_filters( 'wpml_object_id', 4, 'category', TRUE ); // will return the German attachment ID for attachment ID 25. If the translation is missing it will return NULL echo apply_filters( 'wpml_object_id', 25, 'attachment', FALSE, 'de' );
דוגמה מתקדמת יותר
/**
* Returns the translated object ID(post_type or term) or original if missing
*
* @param $object_id integer|string|array The ID/s of the objects to check and return
* @param $type the object type: post, page, {custom post type name}, nav_menu, nav_menu_item, category, tag etc.
* @return string or array of object ids
*/
function my_translate_object_id( $object_id, $type ) {
$current_language= apply_filters( 'wpml_current_language', NULL );
// if array
if( is_array( $object_id ) ){
$translated_object_ids = array();
foreach ( $object_id as $id ) {
$translated_object_ids[] = apply_filters( 'wpml_object_id', $id, $type, true, $current_language );
}
return $translated_object_ids;
}
// if string
elseif( is_string( $object_id ) ) {
// check if we have a comma separated ID string
$is_comma_separated = strpos( $object_id,"," );
if( $is_comma_separated !== FALSE ) {
// explode the comma to create an array of IDs
$object_id = explode( ',', $object_id );
$translated_object_ids = array();
foreach ( $object_id as $id ) {
$translated_object_ids[] = apply_filters ( 'wpml_object_id', $id, $type, true, $current_language );
}
// make sure the output is a comma separated string (the same way it came in!)
return implode ( ',', $translated_object_ids );
}
// if we don't find a comma in the string then this is a single ID
else {
return apply_filters( 'wpml_object_id', intval( $object_id ), $type, true, $current_language );
}
}
// if int
else {
return apply_filters( 'wpml_object_id', $object_id, $type, true, $current_language );
}
}
הוקים קשורים
wpml_media_url, wpml_media_id, force_suppress_filters, wpml_get_translated_slug, wpml_home_url, wpml_translate_single_string, wpml_translate_string, wpml_elements_without_translations, wpml_permalink, wpml_unfiltered_admin_string