WPML
apply_filters( 'wpml_language_codes_map', array $map )
유형
filter
WPML 버전
5.0.0

설명

언어 코드를 WPML이 URL에서 사용하는 코드로 매핑하는 맵을 필터링합니다.

WPML 5.0에서 언어에는 두 개의 코드가 있습니다. language_code은(는) 저장된 코드이며 절대 변경되지 않습니다. URL 코드는 방문자가 보는 세그먼트입니다(예: /de-de/). WPML이 URL 코드를 한정할 때 두 코드가 달라지며, 이는 같은 단계에서 한 언어의 두 국가를 추가하거나 사이트 소유자가 URL 코드를 편집할 때 발생합니다.

이 필터는 URL 변환기 자체가 읽는 맵이므로 WPML이 생성하는 링크와 결코 다를 수 없습니다. 언어의 주소를 확인하려면 이 필터를 사용하세요. 국기와 전체 URL을 포함하여 활성 언어의 모든 데이터를 읽으려면 wpml_active_languages를 사용하세요.

맵을 구성하면 WPML이 이를 다시 작성합니다. WPML은 인식하는 모든 키의 값을 해당 언어의 URL 코드로 대체하고, 나머지 키는 전달된 상태 그대로 유지합니다. WPML은 언어를 추가하지 않으므로 빈 배열은 빈 상태로 반환됩니다. WPML code => WPML code처럼 맵을 먼저 구성한 다음 필터를 적용하세요. WPML도 자체 코드에서 동일한 작업을 수행합니다.

인수

매개변수
  • $map(array) 직접 구성한 WPML code => code의 맵입니다. WPML은 인식하는 각 키의 값을 해당 언어의 URL 코드로 바꿉니다. WPML이 인식하지 못하는 키는 전달된 값을 그대로 유지합니다.
반환값
(array) WPML이 인식하는 각 언어의 URL 코드가 포함된 동일한 맵입니다. WPML은 키를 추가하지 않으므로 읽어오려는 모든 언어를 전달하세요.

사용 예시

맵을 읽어 언어가 사용하는 URL 세그먼트를 확인하세요. 이 예제는 언어당 한 줄씩 작성합니다. wpml_active_languages를 사용하여 언어 목록을 읽으므로, 해당 필터와 마찬가지로 wp 작업 이후에 실행됩니다.

예제
function my_language_url_codes() {
    $codes = apply_filters( 'wpml_active_languages', null );
    if ( empty( $codes ) ) {
        return;
    }

    $identity = array_combine( array_keys( $codes ), array_keys( $codes ) );
    $map      = apply_filters( 'wpml_language_codes_map', $identity );

    foreach ( $map as $language_code => $url_code ) {
        echo esc_html( $language_code . ' is served at /' . $url_code . '/' ) . '<br />';
    }
}

언어의 URL 코드를 변경하려면 WPML » 설정 » 언어에서 편집하세요. 언어를 다른 주소로 이동하는 데 이 필터를 사용하지 마세요. WPML은 수신되는 URL을 구문 분석할 때와 링크를 생성할 때 맵을 읽으므로, 어떤 언어에도 속하지 않는 값은 WPML이 해석할 수 없는 주소를 생성합니다.

wpml_decode_custom_field, wpml_footer_language_selector, wpml_add_language_form_field, wpml_ls_exclude_in_menu, wpml_is_rtl, wpml_alternate_hreflang, wpml_head_langs, wpml_must_translate_canonical_url, wpml_browser_redirect_language_params, wpml_active_languages

모든 사이트 전체 언어 정보 훅 30개