WordPress のデータにPythonで接続する方法|CData Connect AI SDK
CData Connect AI Python SDK を使うと、標準的なDB-API 2.0のPythonコードでWordPress のデータをそのまま読み書きできます。プログラミング不要の他ツールと異なり、pandasやpetlなど既存のPythonエコシステムにそのまま組み込めます。パッケージのインストールからクエリ実行まで3ステップで完了します。
CData Connect AI Python SDK(cdata-connect-ai)は DB-API 2.0(PEP 249)に準拠したクライアントで、標準的な Python のデータベースコードでリアルタイムのWordPress のデータを取得・操作できます。接続まわりは Connect AI が引き受けてくれるので、パッケージを1つインストールしてパーソナルアクセストークンで認証するだけで、WordPress(および Connect AI に接続済みのその他すべてのソース)にクエリを実行できます。しかも sqlite3 や psycopg2 といったライブラリでおなじみの connect() / cursor() / fetchall() という同じパターンをそのまま使えます。
この記事では、Connect AI で WordPress に接続し、パーソナルアクセストークンを生成して SDK をインストールし、リアルタイムのWordPress のデータを読み取る(対応している場合は書き込む)までの流れをご紹介します。
事前準備
- CData Connect AI のアカウント
- Python 3.8 以降
- 有効な認証情報を持つアクティブな WordPress アカウント
Connect AI で WordPress に接続する方法は?
CData Connect AI では、直感的なクリック操作ベースのインターフェースでデータソースに接続できます。
- Connect AI にログインし、Sources をクリックして、 Add Connection をクリックします
- 「Add Connection」パネルから「WordPress」を選択します
-
WordPress に接続するために必要な認証プロパティを入力します。
WordPress 接続プロパティの取得・設定方法
現時点では、CData JDBC Driver for WordPress はセルフホスト型のWordPress インスタンスへの接続のみをサポートしています。データに接続するには、Url を自身のwordpress サイトに指定し、次に以下に説明するように認証を行います。URL を完全な形式で記入します。例えば、あなたのサイトが'http://localhost/wp/wordpress' でホストされている場合、URL は'http://localhost' ではなく、'http://localhost/wp/wordpress' となるべきです。 URL を完全な形式で入力しないと、'site not found' というエラーが発生します。
WordPress は2種類の認証をサポートします。
- Basic 認証は、テスト環境での使用が推奨されます。
- OAuth 2.0 認証は、デスクトップアプリケーション、Web アプリケーション、またはヘッドレスマシンからのブラウザベースのアクセスをサポートします。
Basic 認証
Basic 認証を使用するようにWordPress を設定する前に:
- WordPress ログインに管理者権限があることを確認してください。
- ローカルホストで実行されているWordPress のバージョンを確認します。(WordPress 4.7 以降はネイティブでWordPress REST API サポートしていますが、それより前のバージョンでは、REST API へのアクセスを安全に行うには、Basic 認証プラグインの使用が必要です。)
- WordPress ホストにログインします。
- 4.7より前のバージョンのWordPress を実行している場合は、REST API プラグインをインストールしてください。
- Basic Authentication プラグインをインストールします。
- カスタムタクソノミーを作成するには、Simple Taxonomy Refreshed をインストールします。プラグインを手動でインストールしたい場合は、圧縮されたフォルダをwp-content\plugins フォルダに展開してからWordPress 管理者インターフェース経由でプラグインを有効にします。
- 次の接続プロパティを設定します。
- AuthScheme:Basic。
- Url:WordPress URL。
- User:ユーザーネーム。
- Password:パスワード。
- 「Save & Test」をクリックします
- 「Permissions」タブに移動し、ユーザーベースの権限を更新します。

パーソナルアクセストークン(PAT)を生成する
Python SDK は、アカウントのメールアドレスとパーソナルアクセストークン(PAT)を使って Connect AI に認証します。アクセスの粒度を保つために、アプリケーションごとに個別の PAT を作成することをおすすめします。
- Connect AI アプリの右上にある歯車アイコン()をクリックして、設定ページを開きます。
- 設定ページの Access Tokens セクションに移動し、 Create PAT をクリックします。
- PAT に名前を付けて Create をクリックします。

- パーソナルアクセストークンは作成時にのみ表示されます。必ずコピーして安全な場所に保管してください。
SDK をインストールする
pip を使って PyPI から SDK をインストールします。
pip install cdata-connect-ai
接続して最初のクエリを実行する
アカウントのメールアドレスと PAT で接続したら、sys_tables にクエリを実行して、接続済みのソース全体で利用可能なテーブルを確認してみましょう。Connect AI の識別子は <Connection>.<Schema>.<Table> という3つの部分で構成されており、接続名はデフォルトでソース名(例:WordPress1)になります。
import cdata_connect_ai
conn = cdata_connect_ai.connect(
username="[email protected]",
password="<your_pat>",
)
cur = conn.cursor()
# Discover what's available across your connected sources
cur.execute("SELECT CatalogName, SchemaName, TableName FROM sys_tables LIMIT 25")
for row in cur.fetchall():
print(row)
結果から任意のテーブルを選び、直接クエリを実行してみましょう。
cur.execute(
"SELECT Id, Name "
"FROM [WordPress1].[WordPress].[Categories] "
"LIMIT 10"
)
for row in cur.fetchall():
print(row)
WordPress に書き込む
データソースと接続の権限が許可していれば、同じカーソルで INSERT、UPDATE、DELETE ステートメントも実行できます。フィルタ付きの読み取りとまったく同じように、pyformat(%(name)s)パラメータで値をバインドし、影響を受けた行数は cursor.rowcount で確認できます。
# Insert a new record
cur.execute(
"INSERT INTO [WordPress1].[WordPress].[Categories] (Id) "
"VALUES (%(newvalue)s)",
{"newvalue": "Example value"},
)
print(f"Rows inserted: {cur.rowcount}")
# Update existing records
cur.execute(
"UPDATE [WordPress1].[WordPress].[Categories] "
"SET Name = %(newvalue)s "
"WHERE Id = '1'",
{"newvalue": "Updated value"},
)
print(f"Rows updated: {cur.rowcount}")
conn.close()
注意:書き込み可能なソースであっても、読み取り専用の PAT や接続権限では書き込み操作は拒否されます。同じパラメータ化のパターンは、DELETE ステートメントや cursor.callproc() によるストアドプロシージャの実行にも使えます。
これがワークフローのすべてです。パッケージが1つ、PAT、そして標準的な DB-API 呼び出しだけ。SDK は通常の DB-API 接続を返すので、Python のデータエコシステムのほかのツールにもそのまま組み込めます。ここから先は、この同じ接続を使って、WordPress のデータを pandas に読み込んだり、petl で ETL パイプラインを構築したり、Dash の Web アプリを動かしたりできます。
関連情報と無料トライアル
これで、CData Connect AI Python SDK を通じて Python からリアルタイムのWordPress のデータをクエリできるようになりました。WordPress(および数百種類のその他のデータソース)への接続について詳しくは、Connect AI のページをご覧ください。
CData Connect AI の詳細、または無料トライアルにお申し込みください: