WordPressのアーカイブページのアドレス(URL)表記を変更しました。今のところ動いています。
ちわーす。
dateを入れました、かっぱふぅ( @kappafoo )です。
今日は、WordPressで作っているこのブログのアーカイブのアドレス(URL)を変更したことを記事にします。(自分への備忘録です。)
このブログのパーマリンク設定は、カスタム構造で
「http://kappafoo.com/%year%/%monthnum%/%day%/%post_id%」
としており、個別記事のアドレス(URL)が
「http://kappafoo.com/年/月/日/投稿ID」
の形で表記するようにしています。
そこら辺の経緯については、当時の記事を見てください。
⇒ 404ページをカスタマイズ!サイト来訪者に失礼が無いようにしよう。
このパーマリンク設定にしたときのアーカイブページのアドレスは、例えば今日(2013年5月25日)であれば、
年別のアーカイブアドレス・・・http://kappafoo.com/2013/
月別のアーカイブアドレス・・・http://kappafoo.com/2013/05/
日別のアーカイブアドレス・・・http://kappafoo.com/2013/05/25/
となります。
個別記事のアドレスが、
個別記事のアドレス・・・http://kappafoo.com/2013/05/25/3952
であるので、ぱっと見たところアーカイブページなのか個別記事なのかが非常にわかりづらいです。
そこで、アーカイブページのアドレスを
「http://kappafoo.com/年/」 ⇒ 「http://kappafoo.com/date/年/」
「http://kappafoo.com/年/月/」 ⇒ 「http://kappafoo.com/date/年/月/」
「http://kappafoo.com/年/月/日/」 ⇒ 「http://kappafoo.com/date/年/月/日/」
に変えようと考えました。
ネットで調べると...あるもんですね。
labocho(@labocho)さんの「情報と音楽」のブログの記事「WordPressのURLをhackする」の中に、そのやり方が載ってました。
はっきり言って、あまり良くは理解してません...詳細はlabochoさんの記事をよく読んでください。
私が行ったことは...
1. Internal Rewrite Viewer というプラグインを導入、URL書き換えルールを確認した。(インストール→有効化→「設定」-「パーマリンク設定」-「変更を保存」→(ブログURL)/rewritesでアクセスできる)
2.次のようなfunctionを記述した。(URL吐き出し用)
[php]
function add_date_base($rewrite_rules){
$r = array();
while(list ($key, $val) = each($rewrite_rules)) {
$r[str_replace(‘([0-9]{4})’, ‘date/([0-9]{4})’, $key)] = $val;
}
return $r;
}
add_filter(‘date_rewrite_rules’, ‘add_date_base’);
[/php]
3.もうひとつ、次のようなfunctionを記述した。(URL受け取り用)
[php]
function add_date_base_link($string){
$string = str_replace(‘kappafoo.com/’, ‘kappafoo.com/date/’, $string);
return $string;
}
add_filter(‘year_link’, ‘add_date_base_link’);
add_filter(‘month_link’, ‘add_date_base_link’);
add_filter(‘day_link’, ‘add_date_base_link’);
[/php]
4.これをpluginの形にして、インストールした。
5.管理者ページから「設定」-「パーマリンク設定」-「変更を保存」を行い、URL書き換えルールを再作成した。
6. Internal Rewrite Viewer でURL書き換えルールを確認した。
7.動作の確認を行った。
結果、URL書き換えのルールについては...(抜粋)
[php]Array
(
[date/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$] => index.php?year=$1&monthnum=$2&day=$3
[date/([0-9]{4})/([0-9]{1,2})/?$] => index.php?year=$1&monthnum=$2
[date/([0-9]{4})/?$] => index.php?year=$1
)[/php]
が新たにできていました。
今のところ、動きも悪くありません。
ただ、URL書き換えのルールを見ると、
[php]Array
(
[([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$] => index.php?year=$1&monthnum=$2&day=$3
[([0-9]{4})/([0-9]{1,2})/?$] => index.php?year=$1&monthnum=$2
[([0-9]{4})/?$] => index.php?year=$1
)[/php]
も、まだあるんですよね...なので、「http://kappafoo.com/年/月/日/」の形でもアーカイブベージに行くようです。
とりあえず、動くのでO.K.ということにしています。
さあ次は、Webフォントの記事を作らないとなぁ。