「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
Movable Type 5.1のテンプレートタグの改良点
昨日紹介したように、Movable Type 5.1ではテンプレートタグ関係でいくつかの改良点があります。
この点について解説します。
include_blogsモディファイアとexclude_blogsモディファイアの共存
MTEntries等のテンプレートタグで、データの読み込み元のウェブサイト/ブログを指定する際に、include_blogsとexclude_blogsの各モディファイアを使うことができます。
ただ、Movable Type 5.0まででは、両者を同時に指定することができませんでした。
たとえば、「ウェブサイト配下のブログの中で、ある1つのブログだけ除外する」といったことを、簡単に行うことができませんでした。
Movable Type 5.1ではこの点が改良され、nclude_blogs/exclude_blogsの両方のモディファイアを同時に指定することができるようになります。
たとえば、以下のように書くと、ウェブサイト配下のブログのうち、IDが2番のブログだけ除外して、最新記事を10件出力することができます。
<ul> <mt:Entries include_blogs="children" exclude_blogs="2" lastn="10"> <li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>(<$mt:BlogName$>)</li> </mt:Entries> </ul>
また、exclude_blogsモディファイアには、複数のブログのIDを指定することもできます。
たとえば、上記の例のMTEntriesタグで「exclude_blogs="2,3"」と書くと、IDが2番と3番のブログを除外することができます。
2.user_customモディファイア
Movable Type 5.1では、カテゴリ/フォルダの並べ替え機能が標準装備されます。
ただし、並べ替えた通りに出力するには、カテゴリ等を出力するテンプレートタグに、「sort_by="user_custom"」のモディファイアを付加する必要があります。
このモディファイアは、以下のテンプレートタグで使うことができます。
- MTTopLevelCategories
- MTSubCategories
- MTTopLevelFolders
- MTSubFolders
- MTCategoryNext
- MTCategoryPrevious
- MTFolderNext
- MTFolderPrevious
たとえば、ブログ内のカテゴリの一覧を、指定した並び順の通りに出力するには、以下のように書きます。
<mt:TopLevelCategories sort_by="user_custom"> <mt:SubCatIsFirst><ul></mt:SubCatIsFirst> <li><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a> <$mt:SubCatsRecurse$> </li> <mt:SubCatIsLast></ul></mt:SubCatIsLast> </mt:TopLevelCategories>
なお、従来のMovable Typeからバージョンアップする場合、テンプレート内の上記のテンプレートタグには、「sort_by="user_custom"」のモディファイアはありません。
並べ替えた通りにカテゴリ/フォルダを出力できるようにするには、テンプレートにこれらのモディファイアを手作業で追加します。
また、MTCategoriesタグ/MTFoldersタグにはsort_byモディファイアの機能はありません。
3.MTIncludeタグのparentモディファイア
MTIncludeタグでブログのテンプレートに他のテンプレートモジュールを組み込む際に、「parent="1"」のモディファイアを指定すると、親ウェブサイトのテンプレートモジュールを組み込むことができます。
たとえば、ブログのテンプレートに以下のように書くと、ウェブサイトにある「グローバルナビ」というテンプレートモジュールを組み込む動作になります。
<$mt:Include module="グローバルナビ" parent="1"$>
なお、ブログ/ウェブサイト/システムに同名のテンプレートモジュールがある場合、付加するモディファイアによって、組み込むテンプレートモジュールを以下のように選ぶことができます。
モディファイア | 組み込むテンプレートモジュール |
---|---|
モディファイアなし | ブログのテンプレートモジュール |
parent="1" | ウェブサイトのテンプレートモジュール |
global="1" | システムのテンプレートモジュール |
また、ウェブサイトのテンプレートの中で、MTIncludeタグに「parent="1"」のモディファイアを付加した場合、そのウェブサイトのテンプレートモジュールが組み込まれます。