Clicky

Antigravity連携によるWordPress固定ページへのコード自動同期システム構築

WordPress(ワードプレス)
WordPress(ワードプレス)
この記事は約4分で読めます。

※記事中に広告情報を含みます。

スキルを手に入れた時、人は強くなれる。
Youtubeでスキルアップを始める 電子書籍でスキルアップを始める

WordPressのアプリケーションパスワード発行

WordPressのREST APIを外部から安全に操作するため、専用のパスワードを準備します。 通常のログインパスワードとは別にシステム連携用のパスワードを用意することで、セキュリティを担保します。

1:WordPressの管理画面にログインし、ユーザーメニューからプロフィール画面を開きます。

2:画面下部にあるアプリケーションパスワードの項目に移動します。

3:新しいアプリケーションパスワード名という入力欄に、自動同期用であることがわかる任意の名前を入力します。

4:アプリケーションパスワードを追加というボタンを押します。

5:画面に表示されたパスワードは一度しか表示されないため、必ずコピーして安全な場所に保存します。

同期先となる固定ページIDの取得

更新したいページをプログラムに正確に認識させるため、対象となる固定ページのID番号を取得します。

1:管理画面から、同期させたい固定ページの編集画面を開きます。

2:ブラウザのURLバーを確認します。

3:post=に続く数字がページIDです。 たとえばURLの一部がpost=123となっている場合、必要なIDは123となります。

Antigravityによる自動同期スクリプトの実装

Antigravityに指示を出して、同期の中核となるプログラムを生成させます。 ここではPythonを利用した実装ロジックを解説します。 外部と通信するため、requestsというライブラリを使用します。

スクリプトの処理の流れは以下の通りです。

はじめに、ローカルの指定フォルダにあるHTMLファイルの中身をテキストとして読み込みます。

次に、読み込んだデータをWordPressが理解できるJSON形式に変換します。

最後に、WordPressの受け入れ口であるAPIエンドポイントへデータを送信します。

データの送信先URLは以下の形式になります。

https://あなたのサイトドメイン/wp-json/wp/v2/pages/取得したページID

送信するデータの構造について、contentというキーを用意し、そこに読み込んだHTMLデータを値としてセットします。

認証にはBasic認証を使用します。

ユーザー名にはWordPressのログインID、パスワードには先ほど発行したアプリケーションパスワードを指定するようプログラムに組み込みます。

ファイル変更の自動検知システムの導入

コードを保存するたびに手動でスクリプトを動かすのは非効率なため、ファイルの変更を自動検知してプログラムを起動させる仕組みを作ります。

Pythonの場合、watchdogというライブラリを使用するのが一般的です。

Antigravityへは次のように指示を出します。

 Pythonのwatchdogを使って特定のHTMLファイルが上書き保存されたことを検知したら、WordPressへAPIリクエストを送るスクリプトを即座に実行するコードを書いてください。

この監視プログラムをパソコンのバックグラウンドで起動させておきます。 これにより、ローカルのエディタで保存のショートカットキーを押した瞬間に、裏側で自動的にWordPressのページが書き換わるようになります。

実運用における注意点とPHPコードの扱い

この自動同期システムは、HTML、CSS、JavaScriptといったブラウザ側で動くコードの同期に非常に適しています。

しかし、PHPなどのサーバー側で動くプログラムについては注意が必要です。

WordPressの強固なセキュリティ仕様により、REST API経由で固定ページの本文エリアにPHPのコードを送信しても、ただの文字列として処理され、プログラムとしては実行されません。

そのため、PHPのコードを自動同期したい場合は、固定ページの本文を更新する仕組みではなく、SFTP連携やデプロイツールを用いて、WordPressのテーマ内にあるテンプレートファイルそのものを直接上書きする構成へ切り替える必要があります。

まとめ

AntigravityとREST APIを活用した自動同期システムを導入することで、煩雑なコピーアンドペースト作業から解放され、開発スピードが飛躍的に向上します。

ローカル環境にこの仕組みを構築し、シームレスなWeb制作ワークフローをぜひ体験してください。