スラッグに日本語を入れると Not Found になる

カテゴリーページやタグページのアドレスに日本語 (ダブルバイト文字) のスラッグを入れると、Not Found が表示されてしまうことがあります。

原因は、スラッグは URL エンコードされた時、アルファベットが小文字に変換されるため、大文字のアルファベットを使ったリンクは表示されません。

そこで、WordPress 本体の class-wp.php の次の部分を大文字/小文字を区別しないように、i オプションを追加します。

if ( preg_match("#^$match#i", $request_match, $matches) || preg_match("#^$match#i", urldecode($request_match), $matches) ) {

if ( $wp_rewrite->use_verbose_page_rules && preg_match( '/pagename=\$matches\[([0-9]+)\]/i', $query, $varmatch ) ) {

WordPress 本体のバージョンアップの度に変更する必要があるので、スラッグにはダブルバイト文字 (日本語) を使わない方が無難です。

作成者: コネタねこ

上から読んでも『コネタねこ』、下から読んでも『コネタねこ』。贈り物に悩んだら、コネタねこの小ネタ帳。欲しくなっちゃうプレゼント、そんなアイデアのぞきにきてね♪

1件のコメント

コメントする

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