【WordPress】指定期間に投稿された記事一覧をCSV出力する実装

下記のように記述したテンプレートファイルを作りましょう。

<?php
require_once '../../../wp-load.php';

/* CSV出力 */
if($_POST):

  header("Content-Type: application/octet-stream");
  header("Content-disposition: attachment; filename=download.csv");

  $begin = str_replace('-', '/', $_POST['begin-date']);
  $end   = str_replace('-', '/', $_POST['end-date']);
  $csv   = "日付,タイトル,ページURL,サムネイルURL\n";

  /* クエリ設定 */
  $ajax_query = new WP_Query(

    array(

      'post_type'  => 'post', // 投稿タイプ
      'date_query' => array(

        array(
          'inclusive' => true,  
          'after' => $begin // 集計開始
        ),
        array(
          'inclusive' => true,
          'before' => $end // 集計終了
        )
      ),

      'posts_per_page' => -1 // 全件表示

    )

  );

  /* 記事表示 */
  if ( $ajax_query->have_posts() ) :

    while ( $ajax_query->have_posts() ) :

      $ajax_query->the_post();

      $thumbnail  = get_the_post_thumbnail_url( get_the_ID(), 'full' );
      $url        = get_permalink();
      $title      = get_the_title();
      $date       = get_the_date('Y.m.d');
      $csv       .= $date . "," . $title . ",". $url . "," . $thumbnail . "\n";

    endwhile;

    echo mb_convert_encoding($csv, "SJIS", "UTF-8"); // CSV出力

  endif;
  wp_reset_postdata();

endif;
?>

<?php if(!$_POST): ?>
<html>
<head></head>
<body>

<h1>投稿記事集計</h1>

<form action="" method="post">
  <p>
    <input type="date" name="begin-date" value="集計開始日"> 
    ~ 
    <input type="date" name="end-date" value="集計終了日">
  </p>
  <p>
    <input type="submit" value="ダウンロード">
  </p>
</form>

<?php endif; ?>

投稿者プロフィール

たーさん代表者
東海大学工学部を卒業後、東芝情報システム株式会社(旧グループ会社含む)に入社。半導体(SRAM)の開発チームにて、Unix環境でのPerlを用いた業務自動化プログラムの開発など、エンジニアとしての確かな基礎と緻密な論理的思考力を培う。

その後、東証上場企業である株式会社ザッパラスへ。Web・モバイルの最前線で、数多くのユーザーに愛されるコンテンツ制作業務に従事。ここで「ユーザー目線に立った魅力的なWebコンテンツの企画・制作ノウハウ」を深く学ぶ。

開発・システム側から見た「堅牢なロジック」と、制作・ユーザー側から見た「伝わるコンテンツ」の双方を実務で経験した強みを活かし、フリーランスとして独立。

現在は、ウイングアーク1st株式会社の「データのじかん」運営チームに参画するなど、大手・中小企業のWeb運営・開発パートナーとして活動。完全在宅でありながら、固定IPの完備や厳格なセキュリティポリシーの遵守を徹底し、企業のインフラや本番環境を安全に支える「チームの一員」として高い信頼を得ています。

見た目の美しさはもちろんのこと、内部の構造やWordPressのカスタマイズ、運用・セキュリティまでを見据えた、技術的バックボーンのある高品質なWebサイト・システム制作をワンストップでご提供しています。