2013-01-04
WordPressのindexページに更新情報を表示する+更新から一定時間「New!」と表示する
見ての通りなのですが、ブログのトップページに更新情報を掲載するようにしました。
これまで「ゲーム一言日記」みたいな形で更新情報を載せていたのですが、あれ結構書くのを忘れるんですよね…というわけで自動化してみました。
いくつかのサイトで得た情報をまとめて成形したので、備忘のために覚え書き。
- とろテク – WordPress:新着記事と更新記事を一覧表で表示する
基本のソースコードはこちら。ただこれをこのままindex.phpに挿入すると、index.phpに、更新した固定ページまでも表示されるようになってしまうので(これはこれで別の使い道がありそうですが)、 - 【wordpressで特定のカテゴリーの最新記事を表示する】WP_Queryを使えば簡単ですね | 今村だけがよくわかるブログ
こちらでその解決方法(コードの終わりにクエリ情報をリセットする)を教えてもらいました。(24行目) - WordPressでNew!を表示するパターン別4つの方法 | WordPress(ワードプレス)コミュニティ
「New!」表示についてはこちらで。僕は最終更新日から28時間の間New!を表示するように設定しています。(7~15行目)28時間なのは、大体の人は毎日同じ頃にウェブブラウジングをしているような気がするので、24時間+誤差4時間の意味です。
最終的なコードはこんな感じ。
<!-- 新着情報 --> <div class="update-header">新着情報</div> <div class="update"> <?php query_posts('showposts=10&post_type=any&orderby=modified&exclude=1'); ?> <?php if (have_posts()):while(have_posts()):the_post(); ?> [<?php the_modified_date('Y-m-d'); ?>] <?php $hours = 28; //Newを表示させたい期間の時間 $today = date_i18n('U'); $entry = get_the_modified_time('U'); $kiji = date('U',($today - $entry)) / 3600 ; if( $hours > $kiji ){ echo '<span style="color: #ff0033; ">New!</span>'; //spanタグの中身はテキストではなく画像も可能 } ?> <a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title_attribute(); ?></a> <?php if (get_post_time() == get_post_modified_time() ){ echo "を追加しました。"; }else{ echo "を更新しました。"; } ?> <br /> <?php endwhile; endif; wp_reset_query();?> </div> <!-- 新着情報 -->
あと、先日ご紹介したパンくずリストについてですが、いまいち使いこなせていなかったので疑問点を作者の方にお聞きしたところ、とても親切な回答を頂きましたので、再度リンクを貼らせていただきます(詳細はリンク先にて)。
ちょうど、やってみたい技術でしたのでとても勉強になりました!
ありがとうございます!
2013.01.05 12:09 | by Imamura
>Imamuraさん
お役に立てたようでなによりです。僕は先人達の知恵をお借りしているだけなのでちょっと気恥ずかしいですが…
2013.01.05 20:57 | by yukkun20