このカテゴリでは、コメントの取り扱いに関するサンプルを紹介します。
『コメント関連サンプル』カテゴリ内のエントリ一覧
コメント関連テンプレートタグ
以下は、コメントに関するさまざまな情報をテンプレートタグで取得するためのコードサンプルです。
コメント関連のテンプレートタグは、エントリページ・ウェブページどちらも、書き方や再構築時の挙動は同じです。
1.ブログ内総コメント数を取得する
ブログ内の総コメント数を取得するには、以下のようにします。
<p>ブログ内総コメント数=<MTBlogCommentCount></p>
2.コメント情報を取得する
エントリ・ウェブページにつけられたコメント情報を取得するサンプルコードです。
<h3>エントリでの情報(ウェブページでも同様)</h3>
<MTEntries lastn="10">
<MTComments>
<ul>
<li>MTCommentAuthor =<MTCommentAuthor></li>
<li>MTCommentAuthorIdentity =<MTCommentAuthorIdentity></li>
<li>MTCommentAuthorLink =<MTCommentAuthorLink ></li>
<li>(New)MTCommentBlogID =<MTCommentBlogID></li>
<li>MTCommentBody =<MTCommentBody></li>
<li>MTCommentDate =<MTCommentDate></li>
<li>MTCommentEmail =<MTCommentEmail></li>
<li>MTCommentEntryID =<MTCommentEntryID></li>
<li>(New)MTCommenterAuthIconURL =<MTCommenterAuthIconURL></li>
<li>(New)MTCommenterAuthType =<MTCommenterAuthType></li>
<li>MTCommenterEmail =<MTCommenterEmail></li>
<li>MTCommenterName =<MTCommenterName></li>
<li>MTCommenterNameThunk =<MTCommenterNameThunk></li>
<li>MTCommentID =<MTCommentID></li>
<li>MTCommentIP =<MTCommentIP></li>
<li>MTCommentName =<MTCommentName></li>
<li>MTCommentOrderNumber =<MTCommentOrderNumber></li>
<li>MTCommentPreviewAuthor =<MTCommentPreviewAuthor></li>
<li>MTCommentPreviewAuthorLink =<MTCommentPreviewAuthorLink></li>
<li>MTCommentPreviewBody =<MTCommentPreviewBody></li>
<li>MTCommentPreviewDate =<MTCommentPreviewDate></li>
<li>MTCommentPreviewEmail =<MTCommentPreviewEmail></li>
<li>MTCommentPreviewIP =<MTCommentPreviewIP></li>
<li>MTCommentPreviewIsStatic =<MTCommentPreviewIsStatic></li>
<li>MTCommentPreviewURL =<MTCommentPreviewURL></li>
<li>(New)MTCommentRank =<MTCommentRank></li>
<li>(New)MTCommentRepliesRecurse =<MTCommentRepliesRecurse></li>
<li>(New)MTCommentScore =<MTCommentScore></li>
<li>(New)MTCommentScoreAvg =<MTCommentScoreAvg></li>
<li>(New)MTCommentScoreCount =<MTCommentScoreCount></li>
<li>(New)MTCommentScoreHigh =<MTCommentScoreHigh></li>
<li>(New)MTCommentScoreLow =<MTCommentScoreLow></li>
<li>MTCommentScript =<MTCommentScript></li>
<li>MTCommentURL =<MTCommentURL></li>
</ul>
</MTComments>
</MTEntries>
- MTCommentAuthor
- コメントの投稿時に入力されたコメント投稿者の名前を表示します。モディファイア default を指定することで、コメント者が名前欄未入力のときに表示する名前を指定可能です。
- MTCommentAuthorIdentity
- TypeKey 認証サービスに登録しているプロフィール・ページへのリンクを表示します。
- MTCommentAuthorLink
- コメントの投稿時に入力されたコメント投稿者の名前をリンク付きで出力します。モディファイア default_name で、コメント者が名前欄未入力のときに表示する名前を指定可能です。show_url="0"(URLを出力しない)、show_email(Eメールアドレスを出力する)、spam_protect(メールアドレス部分を数値文字参照の形式にエンコード)、no_redirect(Movable Type のリダイレクト機能を有効にして、リンク先が直接表示されない)などのモデファイアもあります。
- MTCommentBlogID
- コメントが投稿されたブログの ID 番号を表示します。
- MTCommentBody
- コメントの内容を表示します。
- MTCommentDate
- コメントが投稿された日時を出力します。モディファイア format と language を指定して、日時の表示方法を変更可能です。なおモデファイア無しでは"2007年10月20日 00:25"というふうに出力されます。
- MTCommentEmail
- コメントの投稿時に入力されたコメント投稿者のメールアドレスを出力します。リンクは生成されません。モディファイア spam_protect を指定することで、メールアドレス部分を数値文字参照の形式にエンコードすることができます。
- MTCommentEntryID
- コメントを受け付けたエントリのID番号を出力します。
- (New)MTCommenterAuthIconURL
- コメントした登録ユーザーがどのサービスのアカウントでログインしてコメントしたのかを示すアイコンの絶対URLを出力します。例えば、/cgiフォルダ/mt4のインストールフォルダ/mt-static/images/comment/mt_logo.pngなどとなります。ユーザー登録を行っていない一般の方のコメントの場合は空白となります。
- (New)MTCommenterAuthType
- コメントした登録ユーザーがどのアカウントでログインしたのかを出力します。例えば Vox アカウントでログインしてコメントを投稿したユーザーの場合 Vox と出力されます。Movable TypeでログインしてのコメントではMTとなります。ユーザー登録を行っていない一般の方のコメントの場合は空白となります。
- MTCommenterEmail
- コメント投稿者のメールアドレスを表示します。登録ユーザーのコメントではプロフィール登録のメールアドレスが出力されます。ユーザー登録を行っていない一般の方のコメントの場合は空白となります。
- MTCommenterName
- コメント投稿者の表示名を表示します。登録ユーザーのコメントではプロフィール登録の表示名となった。ユーザー登録を行っていない一般の方のコメントの場合は空白となります。
- MTCommenterNameThunk
- コメント投稿者名を JavaScript の変数として設定します。記事執筆中のテストでは空白となりました。
- MTCommentID
- コメントの ID 番号を出力します。主に、コメントへのアンカーリンクを作成するときに使用します。
- MTCommentIP
- コメントを投稿したホストの IP アドレスを出力します。
- MTCommentName
- コメントを投稿した投稿者名を出力します。Movable Type 3.2 以降では、MTCommentAuthorファンクションタグの利用を推奨するそうです。
- MTCommentOrderNumber
- コメントの順番(No)を、1から始まる数字で出力します。
- MTCommentPreviewAuthor
- コメントのプレビュー画面で、コメント投稿者の名前のみを出力します。コメント投稿者へのリンクは生成されません。
- MTCommentPreviewAuthorLink
- コメントのプレビュー画面で、コメント投稿者の名前をリンク付きで出力します。
- MTCommentPreviewBody
- コメントのプレビュー画面で、コメントの内容を出力します。
- MTCommentPreviewDate
- コメントのプレビュー画面で、コメントが投稿された日時を生成します。動作やモデファイアの種類は、MTCommentDateファンクションタグに準じます。
- MTCommentPreviewEmail
- コメントのプレビュー画面で、コメント投稿者のメールアドレスを出力します。登録ユーザの場合プロフィール登録のメールアドレス(リンクなし)、ユーザー登録を行っていない一般の方のコメントの場合は空白となります。
- MTCommentPreviewIP
- コメントのプレビュー画面で、コメントを投稿したホストのIPアドレスを出力します。
- MTCommentPreviewIsStatic
- システムが参照する特殊なタグです。
- MTCommentPreviewURL
- コメントのプレビュー画面で、入力されたURLを出力します。
- (New)MTCommentRank
- プラグインが必要とのことです。そのままでは空白となります。
- (New)MTCommentRepliesRecurse
- MTCommentRepliesブロックタグの内容を再帰的に表示します。
- (New)MTCommentScore
- プラグインが必要とのことです。そのままでは空白となります。
- (New)MTCommentScoreAvg
- プラグインが必要とのことです。そのままでは空白となります。
- (New)MTCommentScoreCount
- プラグインが必要とのことです。そのままでは空白となります。
- (New)MTCommentScoreHigh
- プラグインが必要とのことです。そのままでは空白となります。
- (New)MTCommentScoreLow
- プラグインが必要とのことです。そのままでは空白となります。
- MTCommentScript
- コメントを処理する CGI プログラムのファイル名を出力します。
- MTCommentURL
- コメントの投稿時に入力されたURLを表示します。
コメントリストのサンプル
以下は、エントリにつけられたコメントリストを取得するためのごく簡単なコードサンプルです。
コード
コメントのついたエントリを最大5件、ひとつのエントリについたコメントを最大5件まで表示するオーソドックスなコメントリストです。
<ul>
<MTEntries recently_commented_on="5">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
<ul>
<MTComments lastn="5">
<li>by <a href="<$MTEntryPermalink$>#c<$MTCommentID$>"><$MTCommentAuthor$></a> <$MTCommentDate format="%m月%d日"$></li>
</MTComments>
</ul>
</li>
</MTEntries>
</ul>
名無しコメントに対処する(1)
エントリへブログ観覧者がコメントをつける際、コメントの投稿者欄に名前が入力されていない状態でコメントの投稿を行うと、コメントリストを作成した際にその部分が空欄となります。
まず、MTCommentAuthorテンプレートタグで取得したコメント投稿者をそのままComenterName変数に代入します。次に、もしコメント投稿者が空白であった場合は"名無し"という文字列をComenterName変数に上書き代入します。
<ul>
<MTEntries recently_commented_on="5">
<li><a href="<MTEntryPermalink>"><MTEntryTitle></a>
<ul>
<MTComments lastn="5">
<MTSetvarBlock name="ComenterName"><MTCommentAuthor></MTSetvarBlock>
<MTIf name="ComenterName" le="">
<MTSetvar name="ComenterName" value="名無し">
</MTIf>
<li>by <a href="<MTEntryPermalink>#c<MTCommentID>"><MTGetVar name="ComenterName"></a> <MTCommentDate format="%m月%d日"></li>
</MTComments>
</ul>
</li>
</MTEntries>
</ul>
名無しコメントに対処する(2)
エントリへブログ観覧者がコメントをつける際、コメントの投稿者欄に名前が入力されていない状態でコメントの投稿を行うと、コメントリストを作成した際にその部分が空欄となります。
MTCommentAuthorテンプレートタグでコメント投稿者を記述していた部分を、MTCommentAuthorLinkテンプレートタグに置き換えるという方法があります。
MTCommentAuthorLinkテンプレートタグは、コメントの投稿時に入力されたコメント投稿者の名前を、URL欄へ入力したURLリンク付きで出力します。モディファイア default_name で、名無しのときに表示する名前を指定可能です。show_url="0"(URLを出力しない)、show_email(Eメールアドレスを出力する)、 spam_protect(メールアドレス部分を数値文字参照の形式にエンコード)、no_redirect(Movable Type のリダイレクト機能を有効にして、リンク先が直接表示されない)などのモデファイアもあります。
<ul>
<MTEntries recently_commented_on="5">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>
<ul>
<MTComments lastn="5">
<li>by <a href="<$MTEntryPermalink$>#c<$MTCommentID$>"><$MTCommentAuthorLink default_name="名無し" show_email="0"$></a> <$MTCommentDate format="%m月%d日"$></li>
</MTComments>
</ul>
</li>
</MTEntries>
</ul>
- タグ
-
- .htaccess
- Advantage
- Apache
- Archive
- Asset
- Author
- Authority
- AutoSave
- BackUp
- body
- Bug
- Calc
- Category
- Check
- CMS
- Comment
- Company Site
- Config
- Contact
- CORESERVER
- count
- Create
- Creative Commons
- CSS
- Custom Field
- Date
- Default
- delete
- Designer
- DNS
- Domain
- Entry
- Environment
- Eval
- Example
- Export
- Feature
- Feed
- FFFTP
- File
- Folder
- For
- GetVar
- head
- html
- If
- Image
- Import
- Include
- index
- info
- Install
- key
- keyword
- License
- Local
- Loop
- Management
- Manager
- Meta
- Modifier
- Module
- MTElse
- MTElseIf
- MTFor
- MTGetVar
- MTIf
- MTIgnore
- MTLoop
- MTSeHashVar
- MTSetVar
- MTSetVarBlock
- MTSetVars
- MTSetVarTemplate
- MTUnless
- MySQL
- Navigation
- Next
- op
- Page
- Perl
- php
- PhpMyAdmin
- Ping
- Plugin
- pop
- Previous
- Principle
- push
- ReBuild
- Role
- Sample
- SetUp
- SetVar
- shift
- Spam
- Tag
- Template
- TrackBack
- Trouble
- undef
- unshift
- UpGrade
- UpLoad
- Usability
- Variable
- Version
- WebPage
- Wizard
- Writer
- XAMPP
- XHTML
- XML
- 導入編
- ローカル環境
- サンプル
- トラブル集