[WordPress] Accessでエクスポーターを自作してみました

WordPress DB
WordPress DB

WordPressのプラグインによくあるエクスポーターをAccessで自作してみました。
タイトルと本文の文字数もHTMLタグ抜きで出力します。

大まかな流れは次の通りです。
  1. エックスサーバーのバックアップ機能でMySQLのダンプを取得。
  2. 取得したダンプをローカルのMariaDBにリストア。
  3. ODBCで接続してAccessにリンクテーブルを作成。
  4. HTMLタグを削除する関数とクエリを作成。
  5. クエリ結果をExcelに出力して操作を保存。

スポンサーリンク

MySQLのダンプ取得

エックスサーバーにはMySQLのバックアップ機能があります。この機能を利用して、Wordpressのデータベースのバックアップファイル(ダンプファイル)を取得します。

バックアップのダウンロード

 

ダンプのリストア

ダンプファイルを、MySQL又はMariaDBにデータベースを作成してリストアします。

今回は、Bitnami Redmine Stack for Windows をインストールした際、一緒にインストールされた「MariaDB」に、新たにデータベースを作成してリストアしました。

データベースの作成
mysql > create database untitled_wpdb;
ダンプのリストア
mysql -u root -p --database untitled_wpdb < d:¥untitled_wpdb.sql

 

リンクテーブルの作成

ODBC経由でデータベースに接続して、Accessにリンクテーブルを作成します。

ODBC経由でデータベースに接続

 

リンクテーブルを作成

 

ユーザー定義関数の実装

正規表現のライブラリを追加します。

正規表現のライブラリを追加

 

標準モジュールに次の関数を登録します。

HTMLタグを削除するユーザー定義関数
Public Function cdataConv(str As String) As String

    Dim regEx As New RegExp
    regEx.Pattern = "<[^>]*>"
    regEx.Global = True
    cdataConv = regEx.Replace(str, "")

End Function

 

クエリの作成

次のようなクエリを作成します。

クエリのデザインビュー

 

「本文字数」カラムには次のように入力します。

本文字数: Len(cdataconv([post_content]))

 

SQL全文は次の通りです。

SQL全文
SELECT CLng([wp_posts].[ID]) AS ID, wp_posts.post_title, wp_posts.post_status, wp_posts.post_name, wp_term_taxonomy.taxonomy, wp_terms.name, wp_terms.slug, Len([post_title]) AS 題字数, Len(cdataconv([post_content])) AS 本文字数, wp_posts.post_date, wp_posts.post_modified
FROM ((wp_posts LEFT JOIN wp_term_relationships ON wp_posts.ID = wp_term_relationships.object_id) LEFT JOIN wp_term_taxonomy ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) LEFT JOIN wp_terms ON wp_term_taxonomy.term_id = wp_terms.term_id
WHERE (((wp_posts.post_status)="publish") AND ((wp_term_taxonomy.taxonomy)="category"))
ORDER BY wp_posts.post_date DESC;

 

エクスポートと操作の保存

クエリの右クリックからエクスポートを実行します。

右クリック > エクスポート > Excel

 

エクスポート操作を保存しておきます。

エクスポート操作の保存画面

 

保存したエクスポート操作は、保存済みのエクスポート操作から呼び出せます。

登録した操作の実行画面

 

エクスポート結果(Excel)

実際に作成したクエリでエクスポート結果です。

エクスポートデータ

 

数記事を比較したところ、Cocoonの文字数表示と、タイトル及び本文とも一致していました。

題字数と本文字数

 

本文の字数の分布をグラフで表してみました。

本文字数の分布グラフ

もっとデータベースの構造が分かれば、AccessやExcelでもいろいろ便利なツールが作成できそうです。

今回はローカルにリストアしたデータベースを利用しました。

最後までご覧いただきありがとうございます。
では、また。

 

スポンサーリンク
A1 Style

タイトルとURLをコピーしました