Movable Typeの検索フォームや、「SimilarEntries」プラグインを利用するときに、「カンマで区切ったブログのID」が必要となることがあります。

<input type="hidden" name="IncludeBlogs" value="1,2,3">

上記のように直接入力しても良いのですが、いまひとつ汎用性に欠けます。

mt:BlogParentWebsitemt:Blogsを組み合わせることで、ウェブサイトIDと、属するブログIDすべてをカンマ区切りで取得することができます。
以下のサンプルコードでは、変数「__include_blogs__」にIDが入ります。

<mt:SetVarBlock name="__include_blogs__" note="参照するブログID">
    <mt:BlogParentWebsite>
        <mt:WebsiteID />
        <mt:Blogs include_blogs="children">,<mt:BlogID /></mt:Blogs>
    </mt:BlogParentWebsite>
</mt:SetVarBlock>
<mt:Var name="__include_blogs__" encode_html="1" trim="1" setvar="__include_blogs__" />

・・・

<mt:Var name="__include_blogs__" /> = 1,2,3...

特定のブログを除外する

Blogsタグに、特定のIDを除外する「exclude_blogs」モディファイアを指定することで、管理用ブログなど対象にしたくないブログを除外することができます。

<mt:Blogs include_blogs="children" exclude_blogs="3,4">,<mt:BlogID /></mt:Blogs>

詳しくは公式ドキュメントを参照してください。

MTBlogs | テンプレートタグリファレンス - CMSプラットフォーム Movable Type -

補足

変数の再定義

変数を定義したあと、最後の一行で再度呼び出しを行っています。
これは、SetVarBlock内のMTMLの、改行とスペースを削除するための処理です。

<mt:Var name="__include_blogs__" encode_html="1" trim="1" setvar="__include_blogs__" />

このようにタグを書くことによって、SetVarBlock内で改行を詰める必要がなくなり、コードが読みやすくなります。

最初にウェブサイトIDを指定している理由

mt:Blogsタグでは、間に指定した文字列を挟む「glue」モディファイアがありません。このため、ブログIDだけを列記すると、先頭か後ろに余分なカンマが入ってしまい、エラーの原因となります。

<mt:SetVarBlock name="__include_blogs__" note="参照するブログID">
        <mt:Blogs include_blogs="children">,<mt:BlogID /></mt:Blogs>
</mt:SetVarBlock>
<mt:Var name="__include_blogs__" encode_html="1" trim="1" setvar="__include_blogs__" />

・・・

<mt:Var name="__include_blogs__" /> = ,2,3...

このサンプルコードでは、最初にウェブサイトIDを出力することで防いでいます。

ウェブサイトを除外したい場合は、変数の再呼び出しのときに「regex_replace」で先頭のカンマを削除するか、先述の「exclude_blogs」モディファイアを以下のように使う手があります。

<mt:SetVarBlock name="__include_blogs__" note="参照するブログID">
        2<mt:Blogs include_blogs="children" exclude_blogs="2">,<mt:BlogID /></mt:Blogs>
</mt:SetVarBlock>
<mt:Var name="__include_blogs__" encode_html="1" trim="1" setvar="__include_blogs__" />

・・・

<mt:Var name="__include_blogs__" /> = 2,3...