記事本文
コメント / トラックバックの有無および受信の可否で表示を切り替える
今回は、 Web Standards with MT ver.3.2 Strict のテンプレートを例に出して Movable Type のテンプレートタグの活用方法を紹介します。 デフォルトテンプレートとは少々異なる書き方をしていますので、以後読み進める場合はテンプレートをダウンロードして、記事とテンプレートを見比べるとより理解しやすいと思います。 ( ←抱き合わせ商法 ( ←お金を取っているわけではありませんが ) )
ダウンロードされましたら、 archive_templates\individual_entry_archive.txt をご覧下さい。 79-109 行および 116-281 行の記述が今回のポイントとなります。 なお、今回は実例の紹介に留め、実際のテンプレートタグについては解説しません。 いずれ解説を行うかもしれませんが、テンプレートを見て分からない点があれば遠慮なくご質問ください。 また、 Movable Type 3.2x ではデフォルトテンプレートの記述でもこれに近い切り替えが実装されています。
今回紹介する例は、コメントやトラックバックが寄せられているか寄せられていないか、コメントやトラックバックの受信を行うようにしているかしていないかの各パターンにおいて生成される結果を変更する、というものです。 いくつかの組み合わせが考えられますが、そのパターンによってテンプレートを変更することなく、条件式タグを用いることで 1 つの記述で全てのパターンに対応できるように工夫しています。
- これまでにコメントが寄せられておらず、コメントの受信を行わない場合の例
- これまでにコメントが寄せられており、コメントの受信を行わない場合の例
- これまでにコメントが寄せられておらず、コメントの受信を行う場合の例
- これまでにコメントが寄せられており、コメントの受信を行う場合の例
- これまでにトラックバックが寄せられておらず、トラックバックの受信を行わない場合の例
- これまでにトラックバックが寄せられており、トラックバックの受信を行わない場合の例
- これまでにトラックバックが寄せられておらず、トラックバックの受信を行う場合の例
- これまでにトラックバックが寄せられており、トラックバックの受信を行う場合の例
- 早見表
これまでにコメントが寄せられておらず、コメントの受信を行わない場合の例
まず、既存のコメントが無くコメントの受信も行わない場合を見てみましょう。
記事の作成時点からコメントを受信しないようにしている場合があてはまると思います。
この場合、記事の冒頭の概要欄の「コメント n 件」という項目自体が生成されず、コメント機能自体が無いように見えることになります。
また、コメントが投稿されていないのでコメントの表示は不要ですし、コメントの受信も行わないためコメントフォームも生成しません。
これまでにコメントが寄せられており、コメントの受信を行わない場合の例
次に、最初はコメントを受信するようにしていて既に 1 件以上のコメントが寄せられており、その状態からコメントの受信を行わないように変更した場合を見てみましょう。
いわゆるコメント欄を閉じた状態ですね。
この場合、既にコメントは寄せられているので記事の冒頭の概要欄の「コメント n 件」という項目は生成され、コメント表示欄へのフラグメント参照を示したリンクが付加されます。
また、既にコメントが投稿されているのでそれらのコメントの表示はする必要がありますが、これ以降コメントの受信は行わないためコメントフォームの生成は不要です。
よって、「現在、コメント投稿は受け付けていません。」という表示を行っています。
これまでにコメントが寄せられておらず、コメントの受信を行う場合の例
今度は、まだコメントは寄せられていないが、コメントの受信を行うようにしている場合を見てみましょう。
言い換えればコメント受付中だけどまだ 0 件という状態です。
この場合、まだコメントは寄せられていないので記事の冒頭の概要欄の「コメント 0 件」という項目は生成されますが、コメント表示欄へのフラグメント参照を示したリンクは付加しないようにしています。
( まだコメントが無い状態なので、リンクによる誘導を行う必要が無いためです。 )
コメントが投稿されていないので「まだコメントは寄せられていません。」という表示を行い、合わせてコメントフォームを生成します。
これまでにコメントが寄せられており、コメントの受信を行う場合の例
そして、既に 1 件以上のコメントが寄せられており、継続してコメントの受信を行うようにしている場合を見てみましょう。
この場合、既にコメントは寄せられているので記事の冒頭の概要欄の「コメント n 件」という項目は生成され、コメント表示欄へのフラグメント参照を示したリンクが付加されます。
これまでにトラックバックが寄せられておらず、トラックバックの受信を行わない場合の例
ここからはトラックバック編です。
まず、既存のトラックバックが無くトラックバックの受信も行わない場合を見てみましょう。
記事の作成時点からトラックバックを受信しないようにしている場合があてはまると思います。
この場合、記事の冒頭の概要欄の「トラックバック n 件」という項目自体が生成されず、トラックバック機能自体が無いように見えることになります。
また、トラックバックが投稿されていないのでトラックバックの表示は不要ですし、トラックバックの受信も行わないためトラックバック情報も生成しません。
これまでにトラックバックが寄せられており、トラックバックの受信を行わない場合の例
次に、最初はトラックバックを受信するようにしていて既に 1 件以上のトラックバックが寄せられており、その状態からトラックバックの受信を行わないように変更した場合を見てみましょう。
いわゆるトラックバック欄を閉じた状態ですね。
この場合、既にトラックバックは寄せられているので記事の冒頭の概要欄の「トラックバック n 件」という項目は生成され、トラックバック表示欄へのフラグメント参照を示したリンクが付加されます。
また、既にトラックバックが投稿されているのでそれらのトラックバックの表示はする必要がありますが、これ以降トラックバックの受信は行わないためトラックバック情報の生成は不要です。
よって、「現在、トラックバック送信は受け付けていません。」という表示を行っています。
これまでにトラックバックが寄せられておらず、トラックバックの受信を行う場合の例
今度は、まだトラックバックは寄せられていないが、トラックバックの受信を行うようにしている場合を見てみましょう。
言い換えればトラックバック受付中だけどまだ 0 件という状態です。
この場合、まだトラックバックは寄せられていないので記事の冒頭の概要欄の「トラックバック 0 件」という項目は生成されますが、トラックバック表示欄へのフラグメント参照を示したリンクは付加しないようにしています。
( まだトラックバックが無い状態なので、リンクによる誘導を行う必要が無いためです。 )
トラックバックが投稿されていないので「まだトラックバックは寄せられていません。」という表示を行い、合わせてトラックバック情報を生成します。
これまでにトラックバックが寄せられており、トラックバックの受信を行う場合の例
そして、既に 1 件以上のトラックバックが寄せられており、継続してトラックバックの受信を行うようにしている場合を見てみましょう。
この場合、既にトラックバックは寄せられているので記事の冒頭の概要欄の「トラックバック n 件」という項目は生成され、トラックバック表示欄へのフラグメント参照を示したリンクが付加されます。
また、既にトラックバックが投稿されているのでそれらのトラックバックの表示を行い、合わせてトラックバック情報を生成します。
早見表
| 条件 | 概要欄 | コメント表示 / トラックバック表示 | コメントフォーム / トラックバック情報 |
|---|---|---|---|
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|


