Tổng quan về sự cố
Khi sử dụng RankMath SEO hoặc Yoast SEO với tiện ích bổ sung WPML SEO của chúng tôi, bạn có thể gặp phải các giá trị hreflang không chính xác trong sitemap. Thay vì sử dụng các giá trị hreflang được thiết lập trong cài đặt ngôn ngữ của WPML, sitemap lại lấy mã ngôn ngữ (ví dụ: nz, au) thay vì mã đầy đủ như mong đợi (ví dụ: en-nz, en-au).
Giải pháp tạm thời
Sự cố này đã được khắc phục trong WPML SEO 2.2.3. Việc cập nhật giải quyết vấn đề này trên trang web của bạn, vì vậy bạn chỉ cần giải pháp tạm thời này nếu chưa thể cập nhật.
Vui lòng đảm bảo có bản sao lưu toàn bộ trang web trước khi tiến hành.
- Mở tệp …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php.
- Tìm dòng 180.
- Thay thế:
private function getAlternateLinks( $alternateLangs ) { $buildAlternateLink = function ( $url, $lang ) { return '<xhtml:link rel="alternate" hreflang="' . esc_attr( $lang ) . '" href="' . esc_url( $url ) . '" />'; }; - Bằng:
private function getAlternateLinks( $alternateLangs ) { $buildAlternateLink = function ( $url, $lang ) { $languages = apply_filters( 'wpml_active_languages', null, [] ); $hreflang = isset( $languages[ $lang ]['tag'] ) ? $languages[ $lang ]['tag'] : $lang; return '<xhtml:link rel="alternate" hreflang="' . esc_attr( $hreflang ) . '" href="' . esc_url( $url ) . '" />'; };