「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
アーカイブの制御(その1)
Movable Typeでは、日付毎やカテゴリ毎などでアーカイブページを出力することができます。
個々のアーカイブページは、アーカイブテンプレートに沿って出力されます。
また、アーカイブページのファイル名は、アーカイブマッピングによって画一的に決まります。
ただ、CMS的にMovable Typeを使うと、以下のようなことが出てくることがあります。
- 特定のカテゴリだけアーカイブページのテンプレートを変えたい
- 特定のブログ記事だけ、他のブログ記事とアーカイブページのファイル名の付け方を変えたい
- カテゴリごとに、出力するアーカイブを変えたい(例:「商品情報」カテゴリの記事はカテゴリアーカイブページだけ出力し、「新着情報」カテゴリの記事は年別アーカイブページだけ出力する)
そこで、今日から数回に分けて、アーカイブの制御について解説します。
今日は、アーカイブマッピングの基本を解説します。
1.アーカイブマッピングの基本
アーカイブマッピングとは、アーカイブテンプレートから個々のアーカイブページを出力する際に、アーカイブページのタイプと、ファイル名の付け方を決める仕組みのことです。
アーカイブテンプレートを編集する状態にし、「テンプレートの設定」の部分を開くと、そのテンプレートのアーカイブマッピングを調べることができます。
例えば、Movable Type 4.2の「既定のブログ」のテンプレートセットで、「ブログ記事」アーカイブテンプレートのアーカイブマッピングを見ると、初期値では以下のようになっています。
種類 | ブログ記事 |
---|---|
パス | yyyy/mm/entry-basename.html |
「種類」が「ブログ記事」になっていますので、このアーカイブマッピングによって、ブログ記事毎のページが出力されます。
また、「パス」の「yyyy/mm/entry-basename.html」の各部分は、以下のような意味を持っています。
部分 | 意味 |
---|---|
yyyy | 記事の公開日の西暦年を4桁で表わした値(例:2009) |
mm | 記事の公開日の月を2桁で表わした値(例:05) |
entry-basename | 記事の出力ファイル名(ただしファイル名中の「_」は「-」に変換) |
なお、記事の出力ファイル名は、記事編集ページの「出力ファイル名」の欄で設定します。
2.アーカイブマッピングの例
例えば、以下のように3つのブログ記事を書いたとします。
記事 | 日付 | 記事の出力ファイル名 |
---|---|---|
記事1 | 2009年3月1日 | foo |
記事2 | 2009年4月1日 | bar |
記事3 | 2009年5月1日 | post_1 |
また、ブログ記事アーカイブテンプレートでは、パスの設定を「yyyy/mm/entry-basename.html」にしているとします。
この場合、「ブログ記事」のアーカイブテンプレートを再構築すると、記事1~3のそれぞれに対して、1つずつのブログ記事アーカイブページが出力されます。
「yyyy/mm/entry-basename.html」のパスに従うと、記事1では、記事の年(yyyy)が2009、月(mm)が3、出力ファイル名が「foo」なので、アーカイブページのファイル名は「2009/03/foo.html」になります。
同様に、記事2のアーカイブページのファイル名は、「2009/04/bar.html」になります。
また、記事3は、もともとの出力ファイル名は「post_1」です。
しかし、「yyyy/mm/entry-basename.html」のパスの設定に従うと、出力ファイル名に含まれる「_」は「-」に変換されます。
したがって、記事3のアーカイブページのファイル名は、「2009/05/post-1.html」になります。
3.アーカイブページの保存先
アーカイブページのファイルの保存先は、標準の設定だと、ブログのトップページと同じディレクトリになります。
ただし、設定を変えれば、アーカイブページの保存先を、ブログのトップページのディレクトリとは別にすることができます。
設定の手順は以下のとおりです。
- ブログの「設定」→「公開」メニューを選びます。
- 公開設定のページが開きます。
- 「アーカイブをサイトパスとは別のパスで公開する」のチェックをオンにします。
- 「 アーカイブURL」と「 アーカイブパス」の設定欄が表示されますので、それらを適切に設定します。
例えば、ブログのアドレスが「http://www.example.com/」で、それに対応するサーバー上のディレクトリが「/home/melody/public_html/blog」であるとします。
ここで、アーカイブページのアドレスが、「http://www.example.com/archives/・・・」の形になるようにしたいとします。
今の状況では「http://www.example.com/」に対応するサーバー上のディレクトリが「/home/melody/public_html/blog」です。
したがって、「http://www.example.com/archives/」に対応するサーバー上のディレクトリは、「/home/melody/public_html/blog/archives」になります。
そこで、「アーカイブURL」の欄に「http://www.example.com/archives/」入力し、「アーカイブパス」の欄に「/home/melody/public_html/blog/archives」と入力します。