人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

movable typeで、エントリーの下に「・・・コメント(数字)、トラックバック(数字)」という風に表示される箇所に、24時間以内にコメント(やトラックバック)があったら「new!」とだけ表示させたいのですが、どうすればいいのでしょうか。プラグインなどがあれば教えてほしいです。

●質問者: y76ckk
●カテゴリ:コンピュータ
✍キーワード:24 Movable Type エントリー コメント トラックバック
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ヨネちゃん
●43ポイント

おっしゃっている機能を考えてみたのですが、コメント投稿日時とトラックバック受信日時を取得し、現在時刻と比較する方法では、あまりにも膨大なタグとなってしまいますので、妥協案として、エントリー・アーカイブの最終更新時刻を取得する方法を提案します。


まず、ファイルの拡張子は.phpで書き出すように設定して下さい。

そして、

<MTEntries>と</MTEntries>の間に、

<?php if ((<$MTEntryCommentCount$>+<$MTEntryTrackbackCount$>!=0)&amp;&amp;(date(filemtime(str_replace('<$MTBlogURL$>','','<$MTEntryPermalink$>')))>time()-86400)){echo "<a href=\"<$MTEntryPermalink$>\">new!</a>";}?>

と記述すでば可能です。

http://let.sub.jp/admin/test/

にて実装してみました。

ただし、コメントやトラックバックを受けているエントリーの本文を後日編集した場合にも、編集後24時間はnew!が表示されます。

◎質問者からの返答

yoneto164さんありがとうございます。イケてると思います。

関連して2つの質問をさせて下さい。

[1]ファイルをphpで出力するようにするというのは、googleとかで「movabletype php」などのキーワードで検索するとたくさんヒットする、php化というやつでしょうか。私の思いこみかと思いますが、php化すると重くなるイメージがあるのですが、それは正しいでしょうか?

[2]indexを再構築しない限り、一度付いたnew!は取れないわけですよね?


2 ● yamiwolf
●27ポイント

[1]php化すると重くなるイメージがあるのですが、それは正しいでしょうか?

逆です。PHPにすると(必ずとは言えませんが)負荷は軽減します。

http://php.s3.to/tt/tt1.php

[レッツPHP! PHPってナニ?]

ただしNo.1の回答ではページを.htmlから.phpに変更するだけなので、

MT本体はPHP、読者が見るページ(再構築したhtml部分)はphpスプリクトと言うことになります。

[2]indexを再構築しない限り、一度付いたnew!は取れないわけですよね?

コレも違います。phpはユーザーが(ページを)読み出した時点で実行されますので、

管理画面で編集し、最終更新日時が変更になり24時間以内となった場合new!が表示されると言うことです。

◎質問者からの返答

なるほど、ありがとうございます。

レッツPHPのHPを見て勉強します。


3 ● ヨネちゃん
●26ポイント

[1]MTをPHP化する理由は様々かと思いますので、一概に重くなるとも言い切れません。

今回の場合は、軽く動くように配慮した結果のタグになりますので、これで動作が重くなるということはまず在りえないと思います。

このことは、http://let.sub.jp/admin/test/を見て頂ければ、決して重いものではないと分かって頂けると思います。

[2]スクリプトに関して言いますと「new!」はコメントやトラックバックのあった記事全てに付いています。ただ、24時間を超えると、アクセス時に「new!」が表示されなくなる仕組みであると思って頂ければ分かりやすいでしょうか。

◎質問者からの返答

わかりやすい説明ありがとうございました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ