WPML
apply_filters( 'wpml_language_codes_map', array $map )
Loại
filter
Phiên bản WPML
5.0.0

Miêu tả

Lọc bảng ánh xạ từ mã ngôn ngữ sang mã mà WPML sử dụng trong URL.

Một ngôn ngữ có hai mã trong WPML 5.0. language_code là mã được lưu trữ và nó không bao giờ thay đổi. Mã URL là phân đoạn mà khách truy cập nhìn thấy, ví dụ như /de-de/. Hai mã này khác nhau khi WPML thêm định danh cho mã URL, điều này xảy ra khi bạn thêm hai quốc gia của cùng một ngôn ngữ trong cùng một bước, và khi chủ website chỉnh sửa mã URL.

Bộ lọc này là bảng ánh xạ mà chính bộ chuyển đổi URL đọc, vì vậy nó không bao giờ mâu thuẫn với các liên kết mà WPML xây dựng. Sử dụng nó để biết địa chỉ của một ngôn ngữ. Để đọc tất cả dữ liệu của các ngôn ngữ đang hoạt động, bao gồm cờ và URL đầy đủ, hãy sử dụng wpml_active_languages.

Bạn xây dựng bảng ánh xạ và WPML viết lại nó. WPML thay thế giá trị của mọi khóa mà nó biết bằng mã URL của ngôn ngữ đó, và giữ nguyên mọi khóa khác như bạn đã truyền vào. WPML không bao giờ thêm ngôn ngữ, vì vậy một mảng trống sẽ trả về mảng trống. Xây dựng bảng ánh xạ trước, dưới dạng WPML code => WPML code, và sau đó áp dụng bộ lọc. WPML cũng làm điều tương tự trong mã riêng của mình.

Tham số

Tham số
  • $map(mảng) Một mảng ánh xạ WPML code => code do bạn tự xây dựng. WPML thay thế giá trị của mỗi khóa mà nó biết bằng mã URL của ngôn ngữ đó. Khóa nào WPML không biết sẽ giữ nguyên giá trị mà bạn đã truyền vào.
Trả về
(mảng) Chính mảng ánh xạ đó, với mã URL của từng ngôn ngữ mà WPML biết. WPML không thêm bất kỳ khóa nào, vì vậy hãy truyền vào mọi ngôn ngữ mà bạn muốn đọc.

Ví dụ sử dụng

Đọc mảng ánh xạ để biết một ngôn ngữ sử dụng phân đoạn URL nào. Ví dụ này viết một dòng cho mỗi ngôn ngữ. Nó đọc danh sách ngôn ngữ bằng wpml_active_languages, vì vậy nó chạy sau hành động wp, giống như bộ lọc đó.

Ví dụ
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 />';
    }
}

Để thay đổi mã URL của một ngôn ngữ, hãy chỉnh sửa nó trong WPML » Cài đặt » Ngôn ngữ. Đừng sử dụng bộ lọc này để di chuyển một ngôn ngữ sang địa chỉ khác: WPML đọc mảng ánh xạ khi nó phân tích một URL đến và khi nó tạo một liên kết, do đó một giá trị không thuộc về ngôn ngữ nào sẽ tạo ra các địa chỉ mà WPML không thể phân giải.

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

Tất cả 30 hook Thông tin ngôn ngữ toàn trang web