「WordPressで学ぶPHP(4)通信編」を発売しました。
本書は、「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造編」「WordPressで学ぶPHP(3)関数編」の続編にあたり、Webブラウザとサーバー(PHP)との通信と、PHPから他のサーバーに通信することについて解説します。
再構築するファイルの情報を得るプラグイン
再構築するファイルについて、以下の情報を得るプラグインを作りました。
- ファイルの元になっているテンプレートの名前
- アーカイブのタイプ
- 出力先のファイル名や、サーバー内でのパス
- ファイルの絶対URLと、「http://ドメイン」の部分を除いたURL
テンプレートの種類に応じて処理を変える時に使うなど、使い道はいろいろあるのではないかと思います。
1.動作の要件
このプラグインは、Movable Type 4以降用です。
ただし、以下の状況では使うことができません。
- システムテンプレート(検索結果やコメントプレビューなど)から動的に出力されるページの場合
- MT標準のダイナミック・パブリッシングを使う場合
- 拙作のPerl版ダイナミック・パブリッシングを使う場合
なお、MT標準のテンプレートでは、システムテンプレートでは変数system_templateが定義されるようになっています。
したがって、以下のようにタグを組めば、システムテンプレートでないときだけ、このプラグインのタグを処理することができます。
<MTUnless name="system_template"> このプラグインのタグを使う処理 </MTUnless>
2.インストール
このプラグインは、以下のアドレスからダウンロードすることができます。
プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。
また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。
Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。
ファイルを解凍すると、「FileInfo」というフォルダができます。
このフォルダを、Movable Typeの「plugins」ディレクトリにアップロードします。
3.追加されるテンプレートタグ
このプラグインをインストールすると、以下のテンプレートタグが追加されます。
・MTFileInfoTemplateName
ファイルの元になったテンプレートの名前を出力します。
例えば、「メインページ」のテンプレートでは、このタグの出力は「メインページ」になります。
・MTFileInfoArchiveType
以下の表のように、ファイルのアーカイブタイプを出力します。
| アーカイブのタイプ | 出力される値 |
|---|---|
| インデックス | Index |
| 年別 | Yearly |
| 月別 | Monthly |
| 週別 | Weekly |
| 日別 | Daily |
| カテゴリー | Category |
| 年別カテゴリー | Category-Yearly |
| 月別カテゴリー | Category-Monthly |
| 週別カテゴリー | Category-Weekly |
| 日別カテゴリー | Category-Daily |
| ユーザー | Author |
| 年別ユーザー | Author-Yearly |
| 月別ユーザー | Author-Monthly |
| 週別ユーザー | Author-Weekly |
| 日別ユーザー | Author-Daily |
| ブログ記事 | Individual |
| ウェブページ | Page |
MTFileInfoTemplateNameタグとMTFileInfoArchiveTypeタグを組み合わせることで、「テンプレート名が○○で、かつアーカイブタイプが□□のときだけ何かを出力する」といったことができます。
テンプレートやアーカイブタイプに応じて、サイドバーに出力する内容を変えるようなときに、この手法を使うことができます。
例えば、テンプレート名が「ブログ記事リスト」で、アーカイブタイプがカテゴリーの時だけ何かを出力をするには、以下のように書くことができます。
<MTSetVarBlock name="fi_template_name"><$MTFileInfoTemplateName$></MTSetVarBlock>
<MTSetVarBlock name="fi_archive_type"><$MTFileInfoArchiveType$></MTSetVarBlock>
<MTIf name="fi_template_name" eq="ブログ記事リスト">
<MTIf name="fi_archive_type" eq="Category">
出力する内容
</MTIf>
</MTIf>
・MTFileInfoFileName
出力されたファイルの名前(ディレクトリ名を除いた部分)を出力します。
・MTFileInfoPath
出力されたファイルの、サーバー内でのフルパスを出力します。
・MTFileInfoRelativePath
インデックステンプレートでは、出力されたファイルのパスのうち、サイトパスから後の部分を出力します。
また、アーカイブテンプレートでは、出力されたファイルのパスのうち、アーカイブパスから後の部分を出力します。
・MTFileInfoLink
ファイルのURLを出力します。
・MTFileInfoRelativeURL
ファイルのURLのうち、「http://ドメイン名」を除いた部分を出力します。
例えば、URLが「http://www.foo.com/blog/index.html」の場合、「/blog/index.html」を出力します。
