MTIfNonZeroタグでコメント表示方法を制御する

MTIfNonZeroタグでコメント表示方法を制御する

Posted at November 17,2004 1:35 AM
Tag:[]

個別エントリーアーカイブの中で、「トラックバック数が0件でなければトラックバックを表示する」ために利用する

MTIfNonZero

というタグが使われています。このタグを使うとちょっとした条件分岐ができ、ページへの表示を制御することができます。
参照サイトは下記です。ありがとうございました。

Magic WhiteMTIfNonZeroタグ利用してみました。
HINAGATAマニュアルに無い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 の条件にマッチしなかった場合のものを有効にするためのタグです。

関連記事
トラックバックURL


トラックバック

「コメントはまだありません。」表示 from やむやむ
小粋空間 さまの MTIfNonZeroタグでコメント表示方法を制御する を真似... [続きを読む]

Tracked on November 17, 2004 10:10 PM

カスタマイズ vol.36 from G@MANIA ver.MT - CODE:Hyena -
コメント、トラックバックがない場合はリンクを非表示する Movable Typeのデフォルトの状態だとリンク、トラックバックがない場合でもMain Indexな... [続きを読む]

Tracked on December 3, 2004 10:43 PM

MTIfNonZeroタグでコメント表示方法を制御する from MandraChips
【小粋空間】さんの【MTIfNonZeroタグでコメント表示方法を制御する】記事... [続きを読む]

Tracked on February 13, 2005 2:30 AM
コメント

「コメントはまだありません。」のほうを真似しました。
いいですね、これ。「コメント」っていうタイトルだけあって、中身がないのって なんとなく気になってました。

[1] Posted by さえら : November 17, 2004 10:14 PM

>さえらさん
こんばんは。
早速のご利用ありがとうございます。
「トラックバック表示制御はデフォルトで設定されているのに…」というところで、ふと思い立ちました。
サイトを訪れた方には分かりやすい機能だと思います。

[2] Posted by yujiro : November 18, 2004 12:40 AM

トラックバックありがとうございます。
便利なタグだと思うんですが、そんなに広まってない気はします。
「コメントありません」ばっかだとたしかに悲しいかも、。とも思いますし。
賛否分かれそうなタグな予感もします。

[3] Posted by みよたん : November 18, 2004 10:58 PM

>みよたんさん
こんばんはー。
古ネタ使わせていただきました。
結構便利だと思うのですが表示方法はケースバイケース、といったところですね。

[4] Posted by yujiro : November 19, 2004 1:59 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)