$converted_url = apply_filters( 'wpml_permalink', string $permalink, string $language_code = null, bool $full_resolution = false );
- Loại
- filter
- Danh mục
- Truy xuất nội dung đã bản địa hóa
- Phiên bản WPML
- 3.2.2
Miêu tả
Lọc một đường dẫn tĩnh của WordPress và chuyển đổi nó thành một đường dẫn tĩnh dành riêng cho ngôn ngữ dựa trên định dạng URL ngôn ngữ được thiết lập trong cài đặt ngôn ngữ của WPML.
Điều này có nghĩa là khi “Định dạng URL ngôn ngữ” được đặt thành “Các ngôn ngữ khác nhau trong thư mục”, đường dẫn tĩnh sẽ được trả về dưới dạng http://domain.com/de. Khi “Một tên miền khác nhau cho mỗi ngôn ngữ” được chọn, đường dẫn tĩnh sẽ được chuyển đổi để bao gồm tên miền chính xác được gán cho ngôn ngữ được yêu cầu.
Đối số
- $permalink
- (chuỗi) (Bắt buộc) URL do WordPress tạo để lọc.
- $language_code
- (chuỗi) (Tùy chọn) Ngôn ngữ mà URL sẽ được chuyển đổi sang. Nó chấp nhận mã gồm 2 chữ cái. Khi được đặt thành
null, nó sẽ lùi về ngôn ngữ mặc định cho trang gốc, hoặc ngôn ngữ hiện tại trong tất cả các trường hợp khác. Mặc định lànull - $full_resolution
- (boolean) (Tùy chọn) Bật chuyển đổi toàn bộ các URL được mã hóa cứng.
Ví dụ sử dụng
Ví dụ 1
Ví dụ: nếu chúng ta đã chọn “Các ngôn ngữ khác nhau trong thư mục”, chúng ta có thể sử dụng mã sau:
// will return http://domain.com/de/contact $wpml_permalink = apply_filters( 'wpml_permalink', 'http://domain.com/contact', 'de' );
Ví dụ 2
Chúng ta có một trang http://example.org/hello/ và bản dịch của nó là http://example.org/fr/bonjour/. Giả sử chúng ta đang gọi bộ lọc trong khi hiển thị trang chủ http://example.org.
// displays http://example.org/fr/hello/ (wrong) echo apply_filters( 'wpml_permalink', 'http://example.org/hello/', 'fr' ); // displays http://example.org/fr/bonjour/ (correct) echo apply_filters( 'wpml_permalink', 'http://example.org/hello/', 'fr', true );
Các lưu ý quan trọng về ví dụ thứ hai:
- Việc phân giải toàn bộ là một quá trình nặng, do đó WPML phải lưu trữ các URL đã phân giải trong cơ sở dữ liệu. Lần gọi đầu tiên tới wpml_permalink sẽ làm tăng đáng kể các truy vấn cơ sở dữ liệu và thời gian tải. Nhưng các lần gọi tiếp theo sẽ không làm quá tải quá trình này.
- Dữ liệu lưu trữ trong cơ sở dữ liệu sẽ bị xóa một phần khi bài viết/thuật ngữ được cập nhật hoặc xóa. Và nó sẽ bị xóa hoàn toàn khi truy cập Cài đặt -> Đường dẫn tĩnh (đây là một tùy chọn khắc phục sự cố tốt trong trường hợp bạn gặp bất kỳ vấn đề nào).
- Trong trường hợp không thể phân giải URL, bộ lọc wpml_permalink sẽ trả về URL gốc.
Các hook liên quan
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_unfiltered_admin_string, wpml_element_link