このブログ、WordPressのカテゴリーなどに日本語が含まれていたりします。
ふと。。何気にブラウザのURLアドレスバーをコピーして。。
再度ペースト、カテゴリページを確認。。
404エラー?! なんで???
「%e3%81%a3%e3%81%bd%e3%81%84%e3%81%ae」 はアクセスできるけど
「%E3%81%A3%E3%81%BD%E3%81%84%E3%81%AE」 はダメ。
やばい。だめじゃん。
検索から来る場合、大文字に変換されていると思います。
つまり。。アクセスがあっても404エラーだということ。。
修正します。まず、WordPressのカテゴリの日本語URLを大文字に変更。
1.テーマのfunctions.phpに以下を追加。
<?php
function percent_encode_capital_letter($uri) {
$uri = preg_replace_callback(‘/(%[0-9a-f]{2}?)+/’, create_function(‘$matches’,’return strtoupper($matches[0]);’), $uri);
return $uri;
}add_filter(‘post_link’, ‘percent_encode_capital_letter’);
add_filter(‘page_link’, ‘percent_encode_capital_letter’);
add_filter(‘tag_link’, ‘percent_encode_capital_letter’);
add_filter(‘category_link’, ‘percent_encode_capital_letter’);
add_filter(‘preview_post_link’, ‘percent_encode_capital_letter’);
add_filter(‘get_the_guid’, ‘percent_encode_capital_letter’);
?>
2.大文字でも小文字でも両方表示できるように修正。
/wp-includes/class-wp.php
if ( preg_match(“#^$match#i“, $request_match, $matches) ||
preg_match(“#^$match#i“, urldecode($request_match), $matches) ) {
オプション”i”(大文字、小文字を区別しない)を追加する。。
ついでに。。「.htaccess」の古いURLからの転送設定を大文字に修正。
小文字になっていました。
でもWPバージョンアップなんかしたらまたファイル修正しないといけないのは
面倒だなぁ。。