今回はちょっとマニアックな話題です。
WordPressでは、パーマネントリンクとしていろいろな形式を選ぶことができます。
その中で、投稿名(sample-post)を選ぶとWordPressの投稿記事URLは
http://www.hoge.com/投稿記事タイトル/
となります。
この記事タイトルは日本語なので、SEO的にも有利に働きます。
しかし、問題があります。それは、日本語の場合には、UTF-8において1文字当たり9バイトを費やします。利用できるバイト数は200バイトなので、
200÷9=22
となり、日本語をパーマネントリンクする場合は、22文字が最大となります。
実際に記事のタイトルは、22文字を超えて使いたい場合も多いので、これだと、23文字以上は利用できなくなり、省略されてしまうのです。
文字数の制限される数を増やす方法はこちら。
1、WordPress3.6.1の場合
(1)wp-includesのformatting.php変更
$title = utf8_uri_encode($title, 200);
を
$title = utf8_uri_encode($title, 300);
にする
2、WordPress3.7.1の場合
(1)wp-includesのformatting.php変更
$title = utf8_uri_encode($title, 200);
を
$title = utf8_uri_encode($title, 300);
にする
(2)データベースの変更
wp_postsのpost_nameを
varchar(200)
から
varchar(300)
へ変更
*wp_postsは、サフィックスなどを入れている場合(マルチ化の場合など)は、この名前とは異なる場合があります。
データベース変更はWordPressのバージョンが上がった後に、post_nameフィールドが書き換わったために必要になったと考えられます。なので不要な場合もあるかと。
これにより、
300÷9=33
となり、文字数は最大33となります。
文字数が多過ぎることでSEO的に不利になる可能性もあるので、結果については、自己責任となりますのでご了承ください。
追記 2015/8/1 バージョン 4.2.3に変更する時にやったこと。
URLタイトルの文字数を増やすための変更
1、wp-includesのformatting.php変更
$title = utf8_uri_encode($title, 360);
200⇒360
2、wp-includesのpost.php変更
truncate_post_slug の数字の部分
200⇒360
3、データベースの変更
wp_postsのpost_nameを
varchar(200)
200⇒360