Làm thế nào để Fix WordPress của Yoast SEO Sơ đồ 404 Lỗi

Đã được tải xuống hơn 1 triệu lần, WordPress SEO bởi Yoast plugin là plugin SEO tốt nhất và hoàn thiện nhất cho WordPress. Mặc dù trong quá khứ đã không có vấn đề gì với chúng tôi, nhưng đối với một số người dùng, nó đã gây ra đau đớn. Gần đây, một trong những khách hàng của chúng tôi đã gặp phải lỗi 404 cho sơ đồ trang web của họ được tạo ra bởi plugin WordPress SEO của Yoast. Sau khi thử một vài điều, chúng tôi đã có thể tìm ra các giải pháp. Trong bài này, chúng tôi sẽ chỉ cho bạn cách khắc phục lỗi 404 của plugin sitemap trong plugin WordPress SEO bởi Yoast.

Cập nhật: Điều quan trọng là bạn hiểu rằng vấn đề này có thể xảy ra do chức năng hoặc plugin của chủ đề mã hoá kém. Plugin Yoast hoạt động tốt trên các trang web của chúng tôi. Chỉ muốn có được rất rõ ràng về điều này.

Điều đầu tiên bạn nên thử là mở tệp tin .htaccess của bạn (bạn có thể thực hiện điều này từ plugin WordPress SEO> Chỉnh sửa tệp) và chỉ cần thêm mã sau vào đó:

# WordPress SEO - Sơ đồ trang web XML Viết lại Khắc phục RewriteEngine Bật
 RewriteBase /
 RewriteRule ^ sitemap_index.xml $ /index.php?sitemap=1 [L]
 RewriteRule ^ ([^ /] +?) - sitemap ([0-9] +) ?. xml $ /index.php?sitemap=$1&sitemap_n=$2 [L] # END WordPress SEO - Sơ đồ trang web XML Viết lại Khắc phục 

Đối với hầu hết mọi người, điều này đã khắc phục vấn đề. Có người đã báo cáo rằng mặc dù mã này đã khắc phục sự cố, trang vẫn gửi tiêu đề phản hồi 404 có nghĩa là công cụ Google Người quản trị trang web không thể tìm thấy nó. Vâng trong trường hợp khách hàng của chúng tôi, giải pháp trên đã KHÔNG khắc phục sự cố.

Mặc dù không được ưu tiên, chúng tôi không có sự lựa chọn nào khác ngoài việc chỉnh sửa tệp tin plugin chính để khắc phục sự cố. Theo đề xuất của hadjedj.vincent, chúng tôi đã chỉnh sửa class-sitemaps.php nằm trong “/wp-content/plugins/wordpress-seo/inc/class-sitemaps.php”.

Bạn cần phải nhìn vào mã init chức năng () và làm cho phần đó trông như thế này:

/ **
 * Khởi tạo các sơ đồ trang web.  Thêm quy tắc viết lại các bản đồ trang web và truy vấn var
 * /
 hàm init () {
 global $ wp_rewrite;
 $ GLOBALS ['wp'] -> add_query_var ('sitemap');
 $ GLOBALS ['wp'] -> add_query_var ('sitemap_n');
 add_rewrite_rule ('sitemap_index.xml $', 'index.php? sitemap = 1', 'top');
 add_rewrite_rule ('([^ /] +?) - sitemap ([0-9] +) ?. xml $', 'index.php? sitemap = $ khớp [1] & sitemap_n = $ phù hợp [2]', 'đầu trang  ');
 $ wp_rewrite-> flush_rules ();
 } 

Về cơ bản những gì chúng tôi đang làm là thêm $ wp_rewrite toàn cầu; trước khi tất cả mọi thứ đã có và thêm flush_rules sau khi mã. Bằng cách thêm điều này vào plugin, có vẻ như nó đã khắc phục vấn đề 404 trên trang web của khách hàng của chúng tôi. Chúng tôi không có ý tưởng tại sao Yoast không làm điều này theo mặc định , nhưng có vẻ như một số ít người dùng đang có phiên bản 404 của trang web này. Vấn đề này được giải thích trong các nhận xét.

Cập nhật: Như một số người dùng của chúng tôi báo cáo rằng sau khi áp dụng sửa chữa ở trên, họ vẫn cần phải bỏ chọn tùy chọn sơ đồ trang web trong plugin SEO Yoast và lưu cài đặt của họ. Sau đó, kiểm tra lại tùy chọn của sơ đồ trang web đã cố định lỗi cho họ.

Nếu bạn đang tìm kiếm vấn đề này, chúng tôi hy vọng rằng bản sửa lỗi này đã giúp bạn.