WordPressの月別記事数一覧を抽出するSQL

WordPress

Google Analyticsのアクセス数と記事数を比較したかったので、データベース(MySQL or MariaDB)からデータを抽出するSQLを作成してみました。

抽出データのイメージは↓こんな感じです。

年月 記事数
202007 4
202008 5
202009 8
202010 7
202011 1

SQL

実行するSQLは以下の通りです。

SELECT DATE_FORMAT(post_date, '%Y%m') AS '年月'
      ,COUNT(*) AS '記事数'
  FROM wp_posts
 WHERE post_status = 'publish'
   AND post_type   = 'post'
 GROUP BY DATE_FORMAT(post_date, '%Y%m')
 ORDER BY '年月'

phpMyAdminを使ってSQLを実行してみる

SQL実行の方法が分かる方は、このセクションは飛ばしてOKです。

phpMyAdminにログイン、SQL実行画面を出す

ログインすると、左側にデータベース一覧がありますので、インストール時に指定したデータベースを選択します(データベース名はまちまちなので、ご確認下さい)。

データベースを選択したら、「SQL」をクリックします。

ちなみに、データベースのツリーの子項目として出てくるのは、テーブル(表)です。上の画像では「localwp_」が接頭辞になっていますが、各環境によって異なります。

デフォルトでは「wp_」になるはずです。

SQLを実行する

SQLを貼り付けて、実行ボタンを押します。

注意点としては、FROMの横にテーブル名を指定するのですが、各環境によって同一ではありませんので、適宜、変更して下さい。デフォルトのまま特に何もしていなければ wp_postsのままでOKですが。

実行すると、下に結果が出力されます。

補足:wp_postsテーブルとは?

WordPressの記事のデータが入っています。

抽出条件ですが、post_status = ‘publish’は公開済、post_type=’post’は投稿を表します。ちなみに、post_type=’page’は固定ページです。

データベース構造の詳細は公式ドキュメントをどうぞ。

ファイルに落とす方法

ExcelやPagesで読めるように、CSVで落としましょう。

下に「エクスポート」がありますので、クリックします。

すると、次のページに遷移します。フォーマットを「CSV」にします。

あとは、右下の「実行」ボタンで保存するだけです。

以上です。