WPML
apply_filters( 'wpml_object_id', int $element_id, string $element_type, bool $return_original_if_missing, mixed $ulanguage_code )
النوع
filter
إصدار WPML
3.2

الوصف

يُرجع معرف العنصر في اللغة الحالية أو في لغة أخرى محددة.

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

الوسطاء

$element_id
(int) (مطلوب) المعرف لنوع المنشور (مقالة، صفحة، مرفق، منشور مخصص) أو مصطلح التصنيف (وسم، تصنيف، تصنيف مخصص) المراد تصفيته
$element_type
(string) (مطلوب) نوع العنصر الذي ينتمي إليه المعرف. يمكن أن يكون 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

جميع خطاطيف استرداد المحتوى المحلي البالغ عددها 12 →