WordPress の投稿記事一覧をデータベースから取得してファイルに出力する方法

更新日: 公開日:2016/02/02
WordPress のデータを SQL で抽出

WordPress の投稿記事リストの一覧をデータ抽出するために、SQL を発行してこれらの項目を出力した一覧を取得します。

  • ID
  • 公開日
  • 最終更新日
  • 記事 URL
  • 記事タイトル

URL リストがあれば、Google Analytics からエクスポートしたデータと突合させることも可能です。Analytics 上では得られない、アクセス数0のページだって見つけられます。他にも毎月の記事投稿数のチェックや月々のアクセス数の変化など、1つのファイルにまとめておくことで様々な情報が得られます。

投稿記事のリストは WordPress のデータが格納されている MySQL のデータベースから取得します。

MySQL のデータベースから一覧を抽出する方法

まずはデータベースサーバーの phpMyAdmin にアクセスします。各レンタルサーバーによってアクセス方法が異なるので、phpMyAdmin の開き方については割愛させていただきます。

なおバージョンによって画面デザインが少し異なりますが、手順はほぼ同じです。ここでは MySQL 5.7 の画面を用いて説明していきます。

phpMyAdmin での操作

phpMyAdmin へログイン後、左側のツリーから対象のデータベースを選択。WordPress の情報が入っているデータベースを開きます。画面上にデータが格納されているテーブル一覧が表示されるので、画面上部にある [SQL] のタブへ進みます。

対象データベースの選択

SQL とは、データベースに格納されているデータを抽出するためのプログラムです。あまり詳しくなければ、遷移した入力画面で次の SQL をそのまま貼り付けて実行してください。これで対象の記事リストが抽出されます。

データ取得用 SQL
select
  ID,
  post_date,
  post_modified,
  concat('/', post_name, '/') as post_name,
  post_title
from
  wp_posts
where
  post_status = 'publish'
  and post_type in ('post', 'page')
order by
  post_date

パーマリンクの指定方法により、5行目のコードを変更しないと適切な URL が取得できません。例えば URL が「?p=123」のようになっている場合など、利用しているパーマリンクの形式に合わせて、次のように内容を変更してください。

パーマリンク形式SQL内容
/%postname%/concat(‘/’, post_name, ‘/’) as post_name,
/?p=123concat(‘?p=’, ID) as post_name,
/archives/123

concat(‘/archives/’, ID) as post_name,

上記 SQL は Google Analytics との比較を目的としているので、URL の情報にドメイン部分を含んでいません。もしドメインから必要であれば、concat 関数の最初の引数にドメイン情報を加えてあげることで、フルパスでの URL が取得できます。

concat('https://webllica.com/', post_name, '/') as post_name,

抽出データをエクスポート

発行した SQL に問題が無ければ、抽出結果が次のように一覧表示されます。ここでもしエラーになったら、発行した SQL の構文を見直してください。

phpMyAdmin における SQL 実行結果

抽出データは画面上に表示されているだけなので、ここからファイルへ落とす作業を行います。そのまま画面の下までいくとクエリ結果操作のメニュー群があるので、そこから [エクスポート] へ進みます。

抽出データのエクスポート実行

エクスポート時のオプションとして、ファイルのフォーマットや文字コードを指定できます。旧バージョンには直接 Excel 形式でエクスポートできる機能があったのですが、バージョン 5.7 では廃止されています。

フォーマットは一番使い勝手の良い [CSV] を選択し、エンコーディングの変換は [なし] のまま実行するのがおすすめです。

エクスポートの出力フォーマットを選択

出力したファイルを Excel で表示する

一般的な CSV ファイルは、そのままダブルクリックすれば Excel が起動します。しかし WordPress のデータは文字コードが UTF-8 なので、文字化けしてしまいます。

そんな時は CSV ファイルを一度開いて、BOM 付きのテキストファイルとして上書き保存すれば Excel で閲覧できるようになります。詳しくは次の記事をご覧ください。

以上、WordPress の投稿記事一覧をデータベースから取得する方法でした。

\ この記事をシェアする /

このブログの運営者

NJ

Web系メインで従事していた元システムエンジニア。現在は個人事業主として独立。Webサイト運営における「困った問題」の解決方法をブログで発信。Web サイト運営、ポップデザインや動画制作など、パソコンでモノづくりをしている。