下記のように記述したテンプレートファイルを作りましょう。
<?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; ?>