WPML
Trạng thái
Đã giải quyết
Được báo cáo cho
WPML SEO 2.2.4
Đã giải quyết trong
2.2.5
Plugin/giao diện liên quan
Rank Math SEO
Thẻ chủ đề
Compatibility

Tổng quan về lỗi

Khi sử dụng Rank Math hoặc Yoast SEO cùng với WPML SEO, các liên kết thay thế trong mã nguồn từ sitemap có thể hiển thị sai URL trang chủ đã dịch với một đường dẫn tĩnh nội bộ (ví dụ: /es/home/) thay vì URL gốc của ngôn ngữ như mong đợi (ví dụ: /es/). Điều này không ảnh hưởng đến việc hiển thị ở frontend, nơi các liên kết canonical và hreflang vẫn xuất hiện chính xác.

Giải pháp tạm thời

Vui lòng đảm bảo bạn đã tạo bản sao lưu toàn bộ trang web trước khi tiếp tục.


  • Mở tệp …/wp-content/plugins/wp-seo-multilingual/classes/Shared/Sitemap/BaseAlternateLangHooks.php.

  • Tìm đến dòng 61.

  • Thay thế:
    $link[ self::KEY ][ $lang ] = apply_filters( 'wpml_permalink', $link['loc'], $lang );
            


  • Bằng:
    $link[ self::KEY ][ $lang ] = apply_filters( 'wpml_permalink', $link['loc'], $lang, true );
            

  • Lặp lại thao tác tương tự ở dòng 89.

  • Thay thế:
    return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language );
            


  • Bằng:
    return apply_filters( 'wpml_permalink', $getPermalink( $id ), $language, true );
            

Sau khi áp dụng các thay đổi này, bạn cần tạo lại các sitemap của mình:

  • Đối với Rank Math: Đi tới “Rank Math > Sitemap Settings”, thay đổi giá trị “Links per sitemap”, lưu cài đặt (bạn có thể khôi phục lại giá trị ưa thích của mình sau đó).
  • Đối với Yoast SEO: Làm theo hướng dẫn này để tạo lại sitemap.

Tất cả các lỗi đã ghi nhận →