WPML
apply_filters( 'wpml_object_id', int $element_id, string $element_type, bool $return_original_if_missing, mixed $ulanguage_code )
Typ
filter
WPML-Version
3.2

Beschreibung

Gibt die ID eines Elements in der aktuellen Sprache oder in einer anderen angegebenen Sprache zurück.

Standardmäßig passt WPML IDs automatisch an, um alle Theme-Elemente in der aktuellen Sprache anzuzeigen. Diese Einstellung ist auf der Seite WPMLSprachen standardmäßig „eingeschaltet“. Wenn Sie jedoch Ihr eigenes Theme von Grund auf neu erstellen, verwenden Sie die Funktion wpml_object_id, um IDs manuell anzupassen. Dieser Ansatz ist hinsichtlich der Verarbeitung effizienter.

Argumente

$element_id
(int) (Erforderlich) Die ID des zu filternden Beitragstyps (post, page, attachment, custom post) oder Taxonomie-Begriffs (tag, category, custom taxonomy)
$element_type
(string) (Erforderlich) Der Typ des Elements, zu dem die ID gehört. Kann post, page, {custom post type key}, nav_menu, nav_menu_item, category, post_tag, {custom taxonomy key} sein
$return_original_if_missing
(bool) (Optional) Wenn auf true gesetzt, wird immer ein Wert zurückgegeben (der ursprüngliche Wert, wenn die Übersetzung fehlt). Standardwert ist FALSE
$ulanguage_code
(mixed) (Optional) Wenn fehlend oder NULL, wird die aktuelle Sprache verwendet. Wenn auf einen Sprachcode gesetzt, wird eine Übersetzung für diesen Sprachcode zurückgegeben, oder das Original, wenn die Übersetzung fehlt und $return_original_if_missing auf TRUE gesetzt ist. Standardwert ist NULL

Anwendungsbeispiel

Einige grundlegende Beispiele
// 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' );
Ein fortgeschritteneres Beispiel
/**
 * 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

Alle 12 Abrufen lokalisierter Inhalte-Hooks →