MTIfNonZeroタグでコメント表示方法を制御する
個別エントリーアーカイブの中で、「トラックバック数が0件でなければトラックバックを表示する」ために利用する
- MTIfNonZero
というタグが使われています。このタグを使うとちょっとした条件分岐ができ、ページへの表示を制御することができます。
参照サイトは下記です。ありがとうございました。
このエントリーでは MTIfNonZero タグを利用して、コメント投稿数が0件の時に
- 個別エントリーアーカイブの「コメント」タイトルを表示しない
- 個別エントリーアーカイブの「コメント」タイトル下に「コメントがありません」という表示をする
の2通りの方法を紹介します。私のサイトは下の方法でカスタマイズしてみました。
「コメント」タイトルを表示しない
個別エントリーアーカイブテンプレートの下記の部分に青色のタグを挿入すれば、コメントが0件の場合にコメントのタイトルを非表示にすることができます。</MTIfNonZero> の挿入位置は「コメント」と書かれた次の行でも問題ないと思いますが、コメント表示タグ全体を括らないのはスッキリしないので個人的には下記を推奨します。
:
<MTEntryIfAllowComments>
<MTIfNonZero tag="MTEntryCommentCount">
<div id="comments" class="comments-head"><a name="comments"></a>コメント</div>
<MTComments>
<a name="<$MTCommentID$>"></a>
<div id="c<$MTCommentID$>" class="comments-body">
<$MTCommentBody$>
<div class="comments-post">Posted by <$MTCommentAuthorLink default_name="Anonymous" spam_protect="1"$> <MTCommentAuthorIdentity> at <$MTCommentDate$></div>
</div>
</MTComments>
</MTIfNonZero>
<MTEntryIfCommentsOpen>
:
意味的には、MTIfNonZero の tag属性 MTEntryCommentCount(=エントリーのコメント数)が0でなければ <MTIfNonZero>~</MTIfNonZero> で囲まれた部分を表示(厳密には有効に)する、というものです。
「コメント」タイトル下に「コメントがありません」という表示をする
上記同様、青色のタグを該当位置に挿入すれば、コメントが0件の場合にコメントのタイトル下に「コメントがありません。」というメッセージを表示することができます。タイトルはいずれの場合も表示するので MTIfNonZero タグの中に入れないようにします。divタグは公開テンプレート用に併せて書いてありますので適宜変更してください。
:
<MTEntryIfAllowComments>
<div id="comments" class="comments-head"><a name="comments"></a>コメント</div>
<MTIfNonZero tag="MTEntryCommentCount">
<MTComments>
<a name="<$MTCommentID$>"></a>
<div id="c<$MTCommentID$>" class="comments-body">
<$MTCommentBody$>
<div class="comments-post">Posted by <$MTCommentAuthorLink default_name="Anonymous" spam_protect="1"$> <MTCommentAuthorIdentity> at <$MTCommentDate$></div>
</div>
</MTComments>
<MTElse>
<div class="comments-body">コメントはまだありません。</div>
</MTElse>
</MTIfNonZero>
<MTEntryIfCommentsOpen>
:
この処理をおおざっぱに書くと
<MTIfNonZero tag="MTEntryCommentCount">
:
コメントが0件でない時の処理を記述
:
<MTElse>
:
コメントが0件の時の処理を記述
:
</MTElse>
</MTIfNonZero>
という感じになります。MTElse というタグは MTIfNonZero の条件にマッチしなかった場合のものを有効にするためのタグです。
- Movable Type のブロックタグにファンクションタグで使うモディファイアを指定する
- EntryCategoryID プラグイン
- MTIf タグの test モディファイアで Perl の式を利用する
- MTIf タグの tag モディファイアでテンプレートタグの値を直接参照する
- MTLoop タグによる配列変数・ハッシュ変数の制御
- Movable Type 4.1 / MTOS における変数での算術演算子の利用方法
- Movable Type 4.1 / MTOS における配列とハッシュの利用方法
- サイドバーの表示をメインページと同じにする
- MTIf タグの like 属性について
- MTSetVarBlock と MTSetVarTemplate の違いについて
- strip 属性で日付の空白を削除する
- MTIgnore タグ
- エントリーで table タグを記述する場合の注意
- MTLink によるページ作成
- Movable Type のディレクトリ
- 全エントリーリスト・全コメントリスト・全トラックバックリストを表示
- カテゴリーアーカイブで MTCategoryDescription をタイトルに使う
- 「最近のエントリー」の日別表示
- コメント投稿者の情報表示をカスタマイズする
- MTCommentPreviewIsStatic の振る舞いについての改善案
≫ 「コメントはまだありません。」表示 from やむやむ
小粋空間 さまの MTIfNonZeroタグでコメント表示方法を制御する を真似... [続きを読む]
≫ カスタマイズ vol.36 from G@MANIA ver.MT - CODE:Hyena -
コメント、トラックバックがない場合はリンクを非表示する Movable Typeのデフォルトの状態だとリンク、トラックバックがない場合でもMain Indexな... [続きを読む]
≫ MTIfNonZeroタグでコメント表示方法を制御する from MandraChips
【小粋空間】さんの【MTIfNonZeroタグでコメント表示方法を制御する】記事... [続きを読む]
「コメントはまだありません。」のほうを真似しました。
いいですね、これ。「コメント」っていうタイトルだけあって、中身がないのって なんとなく気になってました。
>さえらさん
こんばんは。
早速のご利用ありがとうございます。
「トラックバック表示制御はデフォルトで設定されているのに…」というところで、ふと思い立ちました。
サイトを訪れた方には分かりやすい機能だと思います。
トラックバックありがとうございます。
便利なタグだと思うんですが、そんなに広まってない気はします。
「コメントありません」ばっかだとたしかに悲しいかも、。とも思いますし。
賛否分かれそうなタグな予感もします。
>みよたんさん
こんばんはー。
古ネタ使わせていただきました。
結構便利だと思うのですが表示方法はケースバイケース、といったところですね。

