Ang pagkakaroon ng nai-download na higit sa 1 milyong beses, WordPress SEO sa pamamagitan ng Yoast plugin ay sa pamamagitan ng malayo ang pinakamahusay at pinaka-kumpletong SEO plugin para sa WordPress. Habang hindi ito nagbigay sa amin ng mga isyu sa nakaraan, para sa ilang mga gumagamit ito ay isang sakit. Kamakailang isa sa aming mga kliyente ang tumakbo sa isyu ng pagkuha ng isang 404 error para sa kanilang mga sitemap na binuo ng WordPress SEO plugin ni Yoast. Matapos subukan ang ilang mga bagay, natukoy namin ang solusyon. Sa artikulong ito, ipapakita namin sa iyo kung paano ayusin ang sitemap 404 error sa WordPress SEO plugin ni Yoast.
Update: Mahalaga na nauunawaan mo na ang isyung ito ay malamang na sanhi ng hindi maayos na naka-code na function ng tema o plugin. Ang plugin ni Yoast ay gumagana nang maayos sa aming mga site. Lamang nais na maging napakalinaw tungkol sa mga ito.
Ang unang bagay na dapat mong subukan ay buksan ang iyong .htaccess file (maaari mo talagang gawin ito mula sa WordPress SEO plugin> I-edit ang Mga Pagpipilian sa File) at idagdag lamang ang sumusunod na code doon:
# WordPress SEO - XML Sitemap Rewrite FixRewriteEngine On 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 - XML Sitemap Rewrite Fix
Para sa karamihan ng mga tao na ito ayusin ang isyu. May nag-ulat na habang pinirma ang code na ito sa isyu, ang pahina ay nagpapadala pa rin ng header na 404 na tumutugon na hindi mahanap ito ng Google Webmaster tool. Sa kaso ng aming kliyente, ang solusyon sa itaas ay HINDI ayusin ang isyu.
Habang hindi ginusto, wala kaming pagpipilian ngunit upang i-edit ang mga pangunahing file ng plugin upang ayusin ang isyu. Tulad ng iminungkahing sa pamamagitan ng hadjedj.vincent, na-edit namin ang class-sitemaps.php na matatagpuan sa “/wp-content/plugins/wordpress-seo/inc/class-sitemaps.php”.
Kailangan mong tingnan ang function na init () code at gawing ganito ang seksyon na ito:
/ ** * Magsimula ng mga sitemap. Magdagdag ng sitemap sa pagsulat na muli ng mga panuntunan at var ng query * / function 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 = $ matches [1] & sitemap_n = $ matches [2]', 'top '); $ wp_rewrite-> flush_rules (); }
Talaga kung ano ang ginagawa namin ay ang pagdaragdag ng global $ wp_rewrite; bago ang lahat ng bagay na naroroon at pagdaragdag ng flush_rules pagkatapos ng code. Sa pamamagitan ng pagdaragdag nito sa plugin, tila upang ayusin ang 404 na isyu sa website ng aming kliyente. Wala kaming ideya kung bakit hindi ginagawa ito ni Yoast bilang default , ngunit tila ang ilang mga gumagamit ay nakakakuha ng sitemap 404 na isyu na ito. Ang paksang ito ay ipinaliwanag sa mga komento.
I-update: Tulad ng iniulat ng ilan sa aming mga gumagamit na pagkatapos na mag-aplay sa pag-aayos sa itaas, kailangan pa rin nila na alisin ang tsek ang pagpipilian sa sitemap sa SEO plugin ng Yoast at i-save ang kanilang mga setting. Pagkatapos na suriin muli ang pagpipilian ng sitemap ay naayos ang error para sa kanila.
Kung hinahanap mo ang isyung ito, inaasahan namin na nakatulong sa iyo ang pag-aayos na ito.