WordPress の投稿記事一覧をデータベースから取得する方法

2016/02/02

WordPress の投稿記事リストを Excel 上で管理するため、次のような項目を出力した一覧が欲しいと考えていました。最終的には Google Analytics からエクスポートしたデータと突合させて、アクセス解析を行うことを目的としています。

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

Analytics の解析だけではアクセス数0のページを抽出することができないため、どうしたら良いか考えた結果、投稿記事リストの一覧を作って Excel 上でぶつけてしまえば良いと結論に至りました。

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

それでは早速抽出してみましょう。データベースサーバーの phpMyAdmin にアクセスします。バージョンによって画面表示デザインが少しことなりますが、メニューの位置は同じです。

現在僕が借りているのは、ロリポップ!エックスサーバー ですが、それぞれバージョンが異なるので、今回はエックスサーバー側の MySQL 5.5 を用いて説明を進めていきます。

phpMyAdmin での操作

phpMyAdmin へログイン後、左側のツリーから対象のデータベースを選択します。WordPress の各種情報が入っているデータベースを選択してください。(information_schema ではない方)

画面上にテーブル一覧が表示されるので、画面上部にある SQL を選択します。

select-post-list-from-mysql01

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 はアナリティクス比較を目的としているので、URL の情報としてドメイン部分を除いて出力されるようにしています。もしドメイン情報から必要な場合は、concat 関数の最初の引数にドメイン情報を加えてあげることで http:// から始まる情報が取得できるようになります。

concat('http://nj-clucker.com/', post_name, '/') as post_name,

ロリポップユーザーはテーブル名が「wp_posts」でなく、wp の後ろに数値が入っている場合があり SQL の該当箇所を書き換える必要があります。僕の場合ロリポップから DB 移行しているため、上記画面のテーブル名リストが「wp6_」から始まっています。

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

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

select-post-list-from-mysql02

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

select-post-list-from-mysql03

エクスポート時のオプションとしてファイルの形式や、ヘッダー情報の扱い、NULL 値の表示方法について設定できるようになります。今回は Excel で利用することを目的としていたので、Microsoft Excel の形式で出力を行います。また1行目にフィールド情報を出力するようチェックを入れ、NULL の代替文字列は空にしておきます。

select-post-list-from-mysql04

あとは画面下にある実行ボタンによりエクスポート処理を行えば完了です。保存されたファイルは指定した形式で出力され、画面上に表示されていたものと同じ情報が抽出されます。

select-post-list-from-mysql05

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

2017/01/20

Windows 10 でアプリをアンインストール(削除)する方法

2017/01/20

Windows 10 でデスクトップにマイコンピューターやコントロールパネルを表示する方法

2017/01/20

ファイアーエムブレムヒーローズのダウンロード方法とインストール手順【初期設定】

2017/01/17

青色申告の申請書「所得税の青色申告承認申請書」の書き方!例にならって入力すれば簡単に作成できる

2017/01/16

個人事業の開業届の書き方!例にならって入力すれば簡単に作成できる

2017/01/14

Nintendo Switch のコントローラーの充電方法は?標準の Joy-Con グリップでは充電できないので注意!

2017/01/14

Nintendo Switch の本体容量は 32GB しかない!容量追加はマイクロSDカードを利用する

2017/01/13

スプラトゥーン2の発売日は2017年夏で決定!

2017/01/13

Nintendo Switch 発売日決定!詳細はいかに?

2017/01/13

Windows 10 の PDF を起動するアプリを設定する方法

→もっと見る

Name :
気力/体力勝負なシステム業界で揉まれています。自分が自分らしくあるために、大事なリセット、スタートします。

プロフィール詳細 Twitter @_NJ69_
Facebook ページ nj-clucker.com シェア
このブログが役に立ったら
「いいね!」お願いします
PAGE TOP ↑