見出し画像

WordPressで日付ごとの記事数をCSV取得するスクリプト作ってみた

※ これは別noteアカ(@fukuro_press)からの移転記事です。

1年間にどれだけ記事を公開したかを表すグラフを作りたかったので、各日付ごとの総公開記事数のCSVを取得できるスクリプトを作ってみました。

もしかしたら誰かの役に立つかもしれないので、公開しようと思います。

作ったスクリプトの全体

実際に作ったのが次のスクリプト(JavaScript)

var SEC_PER_DAY = 86400000;
var posts = jQuery('.type-post.status-publish');
var postSum = 0;
var dateLastPub;
var CSV = "日付,総公開記事数\r\n";
posts = jQuery(posts.get().reverse());
posts.each(function(i){
 var post = jQuery(this);
 var published = post.find('td.date abbr').attr('title');
 var year = published.substr(0, 4);
 var month = published.substr(5, 2);
 var day = published.substr(8, 2);
 var datePub = new Date(year+'-'+month+'-'+day);
 if(typeof dateLastPub === 'undefined') {dateLastPub = datePub;}
 var msDiff = datePub.getTime() - dateLastPub.getTime();
 var dayDiff = Math.floor(msDiff / (1000 * 60 * 60 *24));
 
 ++postSum;
 for(i=0;i<dayDiff;i++){
   var date = new Date(dateLastPub);
   date.setDate(date.getDate()+(i+1));
   CSV+=''+date.getFullYear()+'/'+(date.getMonth()+1)+'/'+date.getDate()+','+postSum;
   CSV+="\r\n";
 }
 dateLastPub = new Date(datePub.toString());
});
console.log(CSV);

上スクリプトで "$" ではなく "jQuery" を使っているのは、WPだとその省略名が使えないからです。(そのことは知ってるけど理由が分からない・・・なんでなんだろう?)

それでWP投稿一覧でこれを実行してみると・・・
最も古い記事の投稿日 ~ 最新記事の投稿日 までの範囲で、各日付ごとの総公開記事数のCSVが取得可能

例えば次みたいな感じで

日付,総公開記事数
2018/8/18,3
2018/8/19,4
2018/8/20,5
2018/8/21,7
2018/8/22,8
2018/8/23,8
2018/8/24,10
2018/8/25,10
2018/8/26,10
2018/8/27,12
2018/8/28,12
2018/8/29,14
2018/8/30,14
2018/8/31,15

日付とその時点までの公開記事数のCSVを昇順で出力していく、という感じのスクリプトです。

ただし、単純にスクレイピングしているだけなので、今後のWPアップデートによっては使えなくなることもありえるかもしれません(といっても可能性は限りなく0に近いけど)

このスクリプトの具体的な実行方法

まずWordPressの投稿画面でF12を押して開発者ツールを開く

そして開発者ツールの上メニューから「Console」をオープン

あとは下画像みたいにソースを直貼りして、実行すればOK

しばらくするとコンソールにCSVが出力されます。

セキュリティ上の関係でダウンロードとかもできないので、そのまま出力されたCSVをコピペしてファイルに保存するなり、エクセルでグラフ化するなりしてください。

実際にこのスクリプトで作ってみたグラフ

このスクリプトでマイ運営ブログ(Fukuro Press)の2018年04月23日~2019年04月10日までの各日付と公開記事数のグラフを作ってみました。

実際にExcelで作ったのが次のグラフ

最初の頃は1日1投稿だったので、傾きがほぼ直線
今は投稿が不定期なので、少し緩やかになってます。

こうしてグラフ化してみると自分の活動が一目で分かって楽しいですね。

もう300記事も書いたのか・・・
なんだか感慨深くなります。


ちなみにこのスクリプト、完全な思い付きで書いたわけではなく、ある記事でアクセス数と記事数の関係を調べたかったので作ったものです。

その記事については公開後にまた紹介しようと思います。

以上、WPで各日付ごとの記事数をCSV化するスクリプトでした。グラフ化以外にも、もしかしたら何かの役に立つかもしれません。


追記 : 2019/05/12
アクセス数と記事数の関係をグラフ化した記事を公開しました

私が実際に運営してるブログデータを元に色々考察してあります。興味のある方は是非ご覧ください。

この記事はいかがでしたか?もし活動を支援していただけるならサポートをお願いいたします m(__)m。