速報

Maru-Janで全会員185万人超の認証情報が流出 再開後もパスワード変更を

CATEGORY

【WordPress】投稿が存在する年を取得する

※本ページのリンクにはプロモーションが含まれています。

投稿が存在する年を取得する

WordPressで投稿が存在する年を取得する方法をご紹介したいと思います!

やりたい事は単純で、投稿が存在する年だけを抽出して年毎に分けた記事を表示する、です。本記事では投稿が存在する年の取得方法だけのご紹介となります。

SQL文を使えば簡単にできると思いますが、私はSQLには詳しくないため、本記事ではWP_Queryを使って投稿が存在する年を取得しています。

では、さっそく解説していきます!

スポンサーリンク

投稿が存在する年を取得する

PHP

$args = array(
  'post_type' => 'post',
  'orderby' => 'date',
  'order' => 'asc',
  'posts_per_page' => -1
);

$query = new WP_Query($args);

if( $query->have_posts() ) {
  $year = array();
  while ( $query->have_posts() ) {
    $query->the_post();
    if ( get_the_date('Y') ){
      array_push( $year, get_the_date('Y') );
    }
  }
  wp_reset_postdata();
}

上記を実行すると以下の画像のような配列が出力されます。

post-exist-year-001

指定した投稿タイプの全投稿から年の値が取得されます。重複した年も含まれているため、数が多くなっています。ここから重複した年の値を削除します。

PHP

$args = array(
  'post_type' => 'post',
  'orderby' => 'date',
  'order' => 'asc',
  'posts_per_page' => -1
);

$query = new WP_Query($args);

if( $query->have_posts() ) {
  $year = array();
  while ( $query->have_posts() ) {
    $query->the_post();
    if ( get_the_date('Y') ){
      array_push( $year, get_the_date('Y') );
    }
  }
  wp_reset_postdata();
}

$year = array_unique( $year );
$year = array_values( $year );

以上で完成です!ここではarray_uniqueで重複した年の値を削除して、array_valuesで配列の添字を振り直しています。実行すると以下のような配列が出力されます。

post-exist-year-002

すっきりしました!あとは$yearの配列で年毎の記事を取得、表示するだけです。

上記ではpost_typeにpost、orderにascを指定していますが、表示したい投稿タイプ(post、page等)や昇順(asc)、降順(desc)は適宜変更してご利用ください!

以上、Wordpressで投稿が存在する年を取得する方法のご紹介でした!最後まで読んでいただきありがとうございました!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク