ワードプレスでサイトマップが404エラーで見つからない場合

製作 プログラム

最終更新日:2016/10/03

ラムネグから一言:寝る前に読むとくだらなすぎて逆に寝れると好評なすごい適当なブログをこっちではじめてます.

サイトマップが404エラーになる

とてつもなくマイナーな原因だったのですが、sitemap.xmlが404エラーになってしまったのでその対策を。

ぼくの場合functions.phpにある記述を増やしたのが直接の原因だったのですが、特定のプラグインでもおなじ処理をしている場合起こるかもしれません。

sanitize_file_nameというフックが原因

sanitize_file_nameというフックを使うと画像をアップロードしたときにファイル名を自動で付け直すことができます。

ぼくはプラグインではなくfunctions.phpに書いてこの処理を行っていたのですが、このsanitize_file_nameはどうやらメディアファイルのアップロード時だけでなくsitemapがプラグインで自動生成されるときでも呼び出されるフックのようで、「sitemap.xml」という名前で保存しようとしていてもこのフックで名前が変わってしまい、結果sitemap.xmlではなく別のヘンな名前のxmlファイルが生成されていました。

原因発生時「All in One SEO」というプラグインのXMLサイトマップ機能でsitemap.xmlを自動生成していました。

下記コードの4行目がとりあえずsitemapのリネーム防止のためにfunctions.phpに追加したコードです。


function rename_mediafile($filename) {
	$info = pathinfo($filename);
	$ext  = empty($info['extension']) ? '' : '.' . $info['extension'];
	if( $info['filename'] != 'sitemap' ){
		$filename = strtolower(time().$ext);
	}
    return $filename;
}
add_filter('sanitize_file_name', 'rename_mediafile', 10);

おかしくなったらプラグイン停止の他にfunctions.phpもチェックしよう

ワードプレスの挙動がおかしくなったらプラグインを停止することはよく行うと思いますが、同じようにfuncitions.phpもみなおすようにすると原因特定が早まるということが今回わかりました。

自分が書いた数行のシンプルなコードがまさか悪さすることはないだろう、という考えがいけなかったですね笑

【おしらせ、というか完全なる宣伝】

文体がもうぜんぜん適当すぎてあれだけどものすごい自由に書いてるブログ「檸檬だくだく」もよろしく.寝る前に読める恐ろしくくだらないやつです.

こんなにも一ミリも目を引かれないタイトルを取り扱ってます: ココア20g / ハイチュウとかってさ / なぜ米と小麦を食べようと思ったのかの謎 /