• かちびと.net

    お手軽WordPress Tips:Twitterのような「~分前に投稿されました」を実装する方法です。対日時を表示する事で別の印象を与えることができそうです

    Kudos for

    WordPress jQuery
  • About This

    Web制作に役立つTips、チュートリアル、、マーケティングに役立つ情報などのリソースをほぼ毎日配信しています。宜しければメモ代わりにご利用下さい。詳しい情報はAbout me またはhumans.txtをご覧下さい。

    Kachibito.net is a community-based website for web designers and developers. The site includes a popular weblog, a design gallery, a open source software, design tips, and the various web-news.

  • Links

お手軽WordPress Tips:Twitterのような「~分前に投稿されました」を実装する

スポンサーリンク

通常のブログは年月日と曜日が表示
されると思いますが、Twitterのように
「~日前」という表示をさせたい、という
事があるのか疑問ではありますが、こ
の「お手軽WordPress Tips」コーナー
はそういったニーズを無視したコーナー
なので気にせず記事を書きます。

というわけで、相対日時を表示する実装法です。更新ペースが早いのであればその更新頻度をより印象付ける事が出来るかも知れません。

コード

コードです。functions.phpに以下を追加。

function time_ago( $type = 'post' ) {
	$d = 'comment' == $type ? 'get_comment_time' : 'get_post_time';
	return human_time_diff($d('U'), current_time('timestamp')) . "" . __('前に投稿されました');
}

ループ内の好みの場所に以下を挿入。

<?php echo time_ago(); ?>

以下が実装した状態

「秒」は表示されません。あと「~週間」というのも物理的に複雑なので「120日前」という感じで表示されます。通常のタイムスタンプとは別に使ってあげるといいかも知れませんね。

URL :
TRB :

Comments & Trackbacks (8)

  1. ひろし

    はじめまして、ひろしと申します。

    早速実装させて頂きました。
    ありがとうございます。

    そこで、1つ質問があります。
    コメントに対する返信をしたときでも、返信した日時が、
    コメントを投稿した日時になってしまいます。

    何卒、ご教授をお願い致します。

    • シロ

      はじめまして、こんにちは。

      コメントに対する返信をしたときでも、返信した日時が、
      コメントを投稿した日時になってしまいます。

      えっと、お使いのテーマのコメント部分がどういうコードで作られているか分かりませんが、コメント部分にもタイムスタンプ用のコードがあると思いますのでそのコードと入れ替えてあげれば実装出来るかなと思います(未検証)

      • ひろし

        早速のお返事ありがとうございます。

        今、確認したところ、全てのコメントが、一番初めに投稿した
        コメントの日時になっているようです。

        返信は関係ありませんでした。
        何か、わかることがございましたら
        よろしくお願い致します。

        • シロ

          頂いてる情報が少ないので正直ひろしさんの置かれている状況が何もわからないのです・・

          えっと、まず目的は「コメントの日時も~分前に投稿されました」と実装されたいのですよね?で、

          全てのコメントが、一番初めに投稿した
          コメントの日時になっているようです。

          というのは、「~分前に投稿されました」は実装出来てるけど、全てのコメントの日時が同じになってしまう、という事ですか?

          ご存知でしたら申し訳ありませんが、コメント部分のコードはテーマファイルによって様々ですので、出来ましたら的確な問題点を挙げて頂けると助かります。

          • ひろし

            シロさん

            いろいろと説明不足で申し訳ありません。

            >目的は「コメントの日時も~分前に投稿されました」と実装されたいのですよね?

            はい。そうです。

            >「~分前に投稿されました」は実装出来てるけど、全てのコメントの日時が同じになってしまう、という事ですか?

            はい。そうなります。

            >出来ましたら的確な問題点を挙げて頂けると助かります。

            こちらがそのプログラムが入っている
            サイトなのですが

            http://m-vak.jp/hp/

            全てのコメントが「6日前に投稿」となっています。
            半分以上は、昨日追記したコメントになります。

            また、実装ですが

            function.phpに

            function time_ago( $type = ‘post’ ) {
            $d = ‘comment’ == $type ? ‘get_comment_time’ : ‘get_post_time’;
            return human_time_diff($d(‘U’), current_time(‘timestamp’)) . “” . __(‘前に投稿’);
            }

            を追加しました。

            そして、

            wp-includes\comment-template.phpの中の
            function start_elの中にtime_agoを追記しました。

            こちらがそのプログラムです。

            <?php printf(__('%s‘), get_comment_author_link()) ?>

            実際に吐き出されたhtmlのソースは

            sensitivity 6日前に投稿

            です。

            質問があいまいにも関わらず
            寛大な対処を感謝いたします。

            ありがとうございます。

          • シロ

            あ、いえいえとんでもないです。情報いただけてよかったです。だいたい把握できました!

            不具合の原因は

            wp-includes/comment-template.phpの中の
            function start_elの中にtime_agoを追記しました。

            多分ここです。wp-includes/comment-template.phpはコアファイルなので基本的に触ってはいけない部分で、この記事内の

            「ループ内の好みの場所に以下を挿入。」

            は、お使いのテーマ(ひろしさんのテーマは「wp」という名ですね)の中にあるファイルに変更を加える事を指します。

            大抵はcomments.phpというファイル名だと思いますが、その中にcomment_date()があればそこを入れ替えるだけですが、なければコードを書き換える作業が必要になってきます。

            コメント部分は結構難しめだと思うのでカスタマイズは慎重になさったほうがいいかもしれません。

          • Dreki26

            私も ひろしさん と同じく、コメント直後なのに「1日前」と表示されました。
            WordPress3.2.1

            そこで、下記のように入れ替えると希望している動作になりました。
            PHP等のプログラムは素人なので、もし間違っていればご指摘頂ければと思います。

            $d = ‘comment’ == $type ? ‘get_comment_time’ : ‘get_post_time’;
              ↓
            $d = ‘comment’ == $type ? ‘get_post_time’ : ‘get_comment_time’;

            ■参考
            http://dreki26.digi2.jp/wp/wp_time_ago.gif

Twitter

Web制作に役立つそうなリソースを独断と好みで配信しています。

かちびと.netにリンクの無いトラックバックはお受けいていません。
コメントされる前にガイドラインをご覧下さい。

twitter facebook rss contact

Ads

Posts

Contact

Services