拙著「個人投資家は低位株で儲けなさい」が発売されました。
株価が安い「低位株」に投資する方法を解説しています。
自由国民社刊で、定価1,512円(消費税込み)です。
配列型のモディファイアに変数を渡す
昨日、「任意のテンプレートを再構築するプラグイン」(RebuildAnyTemplate)に対して、「再構築するブログ記事のIDを、カスタムフィールドで指定したい」という質問を受けました。
この質問に絡めて、配列型のモディファイアに変数を渡す方法を紹介します。
1.配列型のモディファイア
Movable Typeでは、テンプレートタグにモディファイアを指定して、タグの細かな動作を指定することができます。
ほとんどのモディファイアは、「モディファイア名="値"」の形で、1つの値を指定します。
しかし、一部のモディファイアでは、「モディファイア名="値1","値2","値3"・・・」のように、複数の値をコンマで区切って指定できるものがあります。
例えば、replaceモディファイアでは、「replace="検索する値","置換する値"」のように、2つの値をコンマで区切って指定します。
複数の値を渡せるモディファイアでは、Movable Typeの内部では値を配列として受け取ります。
このようなモディファイアに対して、値を変数で指定する場合は、配列変数を指定するようにします。
例えば、以下のようにテンプレートを組むと、MTEntryBodyタグ(記事の本文)に含まれる「MT」の文字列を「Movable Type」に置換することができます。
<$mt:SetVar name="repl_array[0]" value="MT"$> <$mt:SetVar name="repl_array[1]" value="Movable Type"$> <$mt:EntryBody replace="$repl_array"$>
2.RebuildAnyTemplateプラグインで再構築する記事をカスタムフィールドで指定する
RebuildAnyTemplateプラグインでは、あるページを再構築するタイミングで、別のページを再構築することができます。
あるブログ記事を再構築したタイミングで、別のブログ記事を再構築させることもできます。
この場合、「entry_id="ID","ID",・・・」のように、再構築する記事のIDを配列で指定します。
再構築する記事のIDをカスタムフィールドで指定するなら、以下のような方法を取ります。
- 1.個々の記事のカスタムフィールドには、再構築したい記事のIDをコンマで区切って入力します。
- 2.小粋空間様で配布されているSplitプラグインを使って、1.のカスタムフィールドの値を、コンマで区切って配列に変換して変数に代入します。
- 3.2.の変数を、RebuiltAnyTemplateタグのentry_idモディファイアに指定します。
例えば、再構築するブログ記事のIDを、タグ名が「MTEntryRebuildEntryID」のカスタムフィールドに保存しているとします。
この場合だと、ブログ記事アーカイブテンプレートに以下のような部分を入れます。
「ブログ記事アーカイブテンプレートのID」の部分は、ご自分の環境に合わせて書き換えます。
<mt:if tag="EntryRebuildEntryID"> <$mt:EntryRebuildEntryId split="," setvar="rebuild_entry_id"$> <mt:RebuildAnyTemplate archive_type="Individual" template_id="ブログ記事アーカイブテンプレートのID" entry_id="$rebuild_entry_id"$> </mt:If>
2行目で、MTEntryRebuildEntryIDタグの値をコンマで区切って配列にし、「rebuild_entry_id」という変数に代入します。
次の3行目で、MTRebuildAnyTemplateタグのentry_idモディファイアに、2行目で作った変数rebuild_entry_idを指定します。