WordPressで過年度の同じ日付や同じ週の記事を表示する方法を、以下にご紹介します。
具体的には、1年前の今日と同じ記事、2年前の今日と同じ記事、3年前の今日と同じ記事・・・といった具合に、自分が昨年や一昨年の今日にどのような記事を書いたかを表示することができます。
もし、毎日ブログを書いている人で、過去の同じ日にどのような記事を書いているのかWordPress上において表示させたい時に便利です。
また、今日という日の決め打ちではなくて、1年前の同じ週に書いた記事、1年前の同じ月に書いた記事、といった具合に、その過年度の日付の範囲を広げることもできますので、毎日ブログを書いていない人にも需要があるかもしれません。
ここまでを読んで、自分はブログを書いていないから、あまり関係ないなと思われた方もいるかもしれません。
しかしながら、この「WordPressで過年度の同じ日付や同じ週の記事を表示する方法」で書く記事は、発想を変えれば、そのようなニーズのあるサイトであれば、何にでも応用することができます。
例えば、私の場合は、縁あって、とあるジャンルの人物名鑑サイトを作る機会がありまして、「今日誕生日の人物」のような機能を実装をする必要がありました。
この際に、別途、人物の生年月日の一覧のデータベースとプログラムを作って読み込む、という提案が、別の人からありました。
しかし、WordPressの「新規投稿」を、人物プロフィールの入力画面にカスタマイズした上で、記事の公開日付をその人物の生年月日にして、以下のソースコードを出力表示したい箇所のWordPressテーマに書く、という方法で実装した方が、WordPressを使っているのならば明らかに簡単でシンプルです。
この「今日誕生日の人物」の実装も、今回ご紹介する方法で実装することで、実装時間も1時間掛からないで完成させて、その後の運用も全てWordPress上で行うことが出来るので入力画面も一元化することができました。
(この考え方を応用すれば、「今週誕生日の人物」も「今月誕生日の人物」も簡単に実装できます。)
上記は1つの参考事例ですが、いずれにしましても、使い方は様々ですので、過去の年度の同じ日付・同じ週・同じ月、といった記事を表示させる方法も、WordPressにはあるということを知っておくと、意外に便利に応用できる場面もありますので、ご紹介します。
それでは、以下、実際のソースコードなどです。
過年度の同じ日付の記事を、年度の古い順に出す方法
過年度の同じ日付の記事を、年度の古い順に出す場合は、以下のソースコードを、WordPressテーマの表示させたい箇所に記載しましょう。
例:過年度の同じ日付の記事を、年度の古い順に出す
<?php $today = getdate(); query_posts( 'monthnum=' . $today["mon"] . '&day=' . $today["mday"] . '&orderby=date&order=DESC' ); ?> <?php while (have_posts()) : the_post(); ?> <b><?php the_time("Y年n月j日"); ?></b> <strong><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></strong><br /> <?php endwhile;?> <?php wp_reset_query();?>
上記は、基本形ですが、ここからサイトの要望に応じて、応用することもできます。
例:過年度の同じ日付の記事を、年度の新しい順に出す
年度の「古い順」ではなく、年度の「新しい順」に出すには、
&order=ASC
とある箇所を
&order=DESC
としましょう。
過年度の同じ週の記事を、年度の古い順に出す方法
過年度の同じ週の記事を、年度の古い順に出すことも、WordPressでは簡単に実装することができます。
上の過年度の同じ日付の例では、
月と日に注目していましたが、
これを、
$same_week = date(‘W’);
として、
query_postsの中の引数も
w=$same_week
に変える、というだけです。
例:過年度の同じ週の記事を、年度の古い順に出す
<?php $same_week = date('W'); query_posts( "w=$same_week&orderby=date&order=DESC" ); ?> <?php while (have_posts()) : the_post(); ?> <b><?php the_time("Y年n月j日"); ?></b> <strong><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></strong> <?php endwhile;?> <?php wp_reset_query();?>
WordPressで過年度の同じ日付や同じ週の記事を表示する方法のさらに応用編
例:同じ年度に更新した記事一覧を出す
例:同じ時間帯に更新した記事一覧を出す
例:同じ分に更新した記事一覧を出す
例:同じ秒に更新した記事一覧を出す
さて、さらに応用で、
同じ年度に公開したい記事一覧(例えば、2011年に公開した記事一覧)を表示させることもできますし、
同じ時間帯に公開した記事一覧(例えば、午前9時台に公開した記事一覧)を表示させることもできますし、
極端な話、サイトのニーズがあれば、同じ秒数に公開した記事一覧(例えば、毎20秒に公開した記事一覧)を表示させることもできます。
これらは、
テンプレートタグ/query posts – WordPress Codex 日本語版 – 日時引数のページを見ていただきまして、
上のmonthnumやdayやwの部分を、以下のように変えれば、自由に出力表示することが出来るでしょう。
日時引数
指定した日時の間に投稿された投稿を表示。
year (int) – 4桁の年(例:2011)
monthnum (int) – 月(1〜12)
w (int) – 0〜53 で年間の週を指定。MySQL WEEK command Mode=1 を使っている。
day (int) – 日(1〜31)
hour (int) – 時(0〜23)
minute (int) – 分 (0〜60)
second (int) – 秒(0〜60)
テンプレートタグ/query posts – WordPress Codex 日本語版 – 日時引数のページには、以下の例も紹介されていますので、この記事でも事例として書いておきます。
この「WordPressで過年度の同じ日付や同じ週の記事を表示する方法」は、全てのサイトで常に使うということは無いと思いますが、作りたいサイトによっては便利だと思いますので、参考いただけますと嬉しいです。
例:2010年3月1日から2010年3月15日までの投稿記事を表示
<?php function filter_where( $where = '' ) { $where .= " AND post_date >= '2010-03-01' AND post_date < '2010-03-16'"; return $where; } add_filter( 'posts_where', 'filter_where' ); query_posts( $query_string ); ?>
例:最近30日間の投稿記事を表示
<?php function filter_where( $where = '' ) { $where .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'"; return $where; } add_filter( 'posts_where', 'filter_where' ); query_posts( $query_string ); ?>
例:30〜60日前の投稿記事を表示
<?php function filter_where( $where = '' ) { $where .= " AND post_date >= '" . date('Y-m-d', strtotime('-60 days')) . "'" . " AND post_date <= '" . date('Y-m-d', strtotime('-30 days')) . "'"; return $where; } add_filter( 'posts_where', 'filter_where' ); query_posts( $query_string ); ?>
以上となります。
それぞれのソースコードにつきまして、稼働チェックはしていますが、もしソースコードに間違いや、より良い書き方などもありましたら、ご指摘いただけましたら嬉しいです。
縁あって、人物名鑑サイトをWordPressで作る機会がありあして、「今日誕生日の人物」の実装を、この方法で行ないましたので、ご紹介します。 – WordPressで過年度の同じ日付や同じ週の記事を表示する方法 http://t.co/n01mcpWi
WordPressで過年度の同じ日付や同じ週の記事を表示する方法 | WordPress(ワードプレス)コミュニティ http://t.co/63HKUZKx #wordpress
[*wordpress][*tips] / “WordPressで過年度の同じ日付や同じ週の記事を表示する方法 | WordPress(ワードプレス)コミュニティ” http://t.co/6W2aHihq
WordPressで過年度の同じ日付や同じ週の記事を表示する方法 | WordPress(ワードプレス)コミュニティ http://t.co/QzYZBGUF
WordPressで過年度の同じ日付や同じ週の記事を表示する方法 http://t.co/9Y8FwH7a
WordPressで過年度の同じ日付や同じ週の記事を表示する方法 | WordPress(ワードプレス)コミュニティ – http://wp3.jp/2012…
WordPressで過年度の同じ日付や同じ週の記事を表示する方法 | WordPress(ワードプレス)コミュニティ – http://wp3.jp/2012…
@myen サイト構築ネタ / “WordPressで過年度の同じ日付や同じ週の記事を表示する方法 | WordPress(ワードプレス)コミュニティ” http://t.co/pDfsrcAp
WordPressで過年度の同じ日付や同じ週の記事を表示する方法 | WordPress(ワードプレス)コミュニティ – http://wp3.jp/2012…
ピンバック: WordPressに記事が1件も無い場合に文字を表示させる方法 | WordPress(ワードプレス)コミュニティ
WordPressで過年度の同じ日付や同じ週の記事を表示する方法 | WordPress(ワードプレス)コミュニティ: http://t.co/2ezTDv06
WordPressで過年度の同じ日付や同じ週の記事を表示する方法 | WordPress(ワードプレス)コミュニティ http://t.co/YwziuTjj #wordpress #wp
WordPressで過年度の同じ日付や同じ週の記事を表示する方法 | WordPress(ワードプレス)コミュニティ: http://t.co/KNCbbnmM
WordPressで過年度の同じ日付や同じ週の記事を表示する方法 | WordPress(ワードプレス)コミュニティ: http://t.co/KNCbbnmM
WordPressで過年度の同じ日付や同じ週の記事を表示する方法 http://t.co/jewrvFi7 @khoshinoさんから
WordPressで過年度の同じ日付や同じ週の記事を表示する方法 http://t.co/nE07IUPO @khoshinoさんから
同日の過去記事を表示する方法