「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
PHPUtilプラグイン(その2・ファイルの読み込み)
PHPUtilプラグインをインストールすると、多くのテンプレートタグが追加されます。
それらの中から、簡単なテンプレートタグから順に解説していきます。
今日は、ファイルを読み込んでその位置に出力するテンプレートタグを取り上げます。
1.Movable Type 5.13への対応
Movable Type 5.13では、セキュリティ強化のために、MTIncludeタグのfileモディファイアが非推奨になりました。
このプラグインでは、ファイル読み込み関係のテンプレートタグとして、MTPHPReadfile/MTPHPInclude/MTPHPIncludeOnceのタグの3つを提供しますが、デフォルトでは使用できないようになっています。
MTPHPReadfileタグを利用できるようにするには、mt-config.cgiに以下の1行を追加します。
AllowPHPReadFile 1
また、MTPHPIncludeタグ/MTPHPIncludeOnceタグを利用できるようにするには、mt-config.cgiに以下の1行を追加します。
AllowPHPInclude 1
2.MTPHPReadFileタグ
出力中のページに、他のファイルから読み込んだ内容を組み込みたい場面は、多々あります。
例えば、ブログのすべてのページで共通な部分(サイドバー等)を1つのファイルに出力しておいて、各ページに組み込むような場合です。
MTPHPReadFileタグは、このような場合に使います。
書き方は以下の通りです。
<$mt:PHPReadFile file="ファイル名"$>
2-1.相対パス指定
ファイル名を相対パスで書くと、ブログ(ウェブサイト)のディレクトリを基準に、ファイルが読み込まれます。
例えば、以下のように書くと、このタグの位置に、ブログ(ウェブサイト)のディレクトリにある「sidebar.html」というファイルが読み込まれます。
<$mt:PHPReadFile file="sidebar.html"$>
2-2.絶対パス指定
ファイル名を絶対パスで書くと、サーバー上のそのパスのファイルが読み込まれます。
例えば、以下のように書くと、このタグの位置に、サーバー上の「/var/data/sidebar.html」というファイルが読み込まれます。
<$mt:PHPReadFile file="/var/data/sidebar.html"$>
2-3.記号で指定
さらに、fileモディファイアは、MTFileTemplateタグのformatモディファイアと同じ書き方をすることができます。
例えば、以下のように書くと、ブログ(ウェブサイト)のディレクトリにある「entryXXX.html」(XXXはもっとも新しいブログ記事のID)のようなファイルを読み込んで出力することができます。
<mt:Entires lastn="1"> <$mt:PHPReadFile file="entry%E.html"$> </mt:Entries>
3.MTPHPIncludeタグ
MTPHPReadFileタグと似た動作をするテンプレートタグとして、「MTPHPInclude」というタグも追加されます。
書き方は以下の通りで、MTPHPReadFileタグとほぼ同じです。
<$mt:PHPReadInclude file="ファイル名"$>
MTPHPReadFileタグでは、ファイルの中にPHPのコードが含まれていても、PHPとして処理されず、そのまま文字列の形で出力されます。
一方、MTPHPIncludeタグでは、ファイルの中にPHPのコードが含まれていた場合は、その部分がPHPとして処理されます。
例えば、読み込むファイルの内容が以下のようになっているとします。
<?php echo 'Hello, world.'; ?>
この場合、MTPHPReadFileタグでこのファイルを読み込むと、「<?php echo 'Hello, world.'; ?>」とそのまま出力されます。
一方、MTPHPReadFileタグで読み込んだ場合、PHPのecho文コードとして処理され、「Hello, world.」だけが出力されます。
4.MTPHPIncludeOnceタグ
MTPHPIncludeOnceタグも、MTPHPIncludeタグと同様に、読み込んだファイルの中にPHPのコードがあれば、PHPとして処理されます。
ただし、同じファイルを複数回読み込んだ場合は、最初の一回だけ処理が行われ、二回目以降は無視されます。
場合によっては、PHPのライブラリのファイルを組み込みたいことがあります。
この場合、同じライブラリを複数回組み込まないようにするために、MTPHPIncludeOnceタグを使うと良いです。
5.PHPUtilプラグイン関係の記事の一覧
PHPUtil関係のその他の記事は、以下のリンクから参照できます。
- PHPUtilプラグイン(その1・概要とインストール)
- PHPUtilプラグイン(その2・ファイルの読み込み)
- PHPUtilプラグイン(その3・日時関係の処理)
- PHPUtilプラグイン(その4・ユーザーエージェントの判断)
- PHPUtilプラグイン(その5・変数の基本)
- PHPUtilプラグイン(その6・変数の計算)
- PHPUtilプラグイン(その7・配列の利用)
- PHPUtilプラグイン(その8・配列関係の関数)
- PHPUtilプラグイン(その9・ハッシュの利用)
- PHPUtilプラグイン(その10・GET/POSTされた値を得る)
- PHPUtilプラグイン(その11・条件判断前半)
- PHPUtilプラグイン(その12・条件判断後半)
- PHPUtilプラグイン(その13・一定回数の繰り返し)
- PHPUtilプラグイン(その14・配列/ハッシュの出力)
- PHPUtilプラグイン(その15・条件による繰り返し)
- PHPUtilプラグイン(その16・繰り返しを途中で抜ける)
- PHPUtilプラグイン(その17・関数の実行)
- PHPUtilプラグイン(その18・各種のグローバルモディファイア)