WordPressの日本語スラッグ対応

SEOに効果があるのか気になっていたので実験、メモ書き。
パーマリンク設定を「カスタム構造”/%category%/%post_id%”」 にしてOK!
と思ったら、クロールエラー出まくりヽ(´Д`;)ノアゥ…

という訳で、以下参考にしてfunctions.phpを修正。

WordPress での日本語スラッグについて

functions.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’);

で、今度こそ終わり!と思ったけど、固定ページがエラー吐いて404に…。
レスが付いてなくてアレだったけど以下試してみた。

WP 3.0.1 固定ページのパーマリンクで日本語が使えない

/wp-includes/class-wp.php 198行目付近
if ( preg_match("#^$match#i", $request_match, $matches) ||
preg_match("#^$match#i", urldecode($request_match), $matches) ) {

オプション”i”(大文字、小文字を区別しない)を追加して解決。
これいじっちゃうとアップデートの度に修正するようか?

苦労して日本語に対応させたは良いけど、
IEだとURLにエンコードされた文字が出て気持ち悪いかも(^^ゞ

Posted in 雑記 and tagged .

2 Comments

  1. Pingback: wordpressの固定ページのスラッグを日本語にしたら404 « 自宅インフラ

  2. Pingback: WordPressの日本語スラッグ対応 | WordPress@pindo

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です