外部から取ってきたデータを、毎日決まった時刻に WordPress の記事へ反映したい。
よくある要件です。
株価でも天気でも為替でも、やることは同じです。
「どこか(GitHub Actions)で定期実行してデータを作り、それを WordPress に表示する」。

問題はその2つをどうつなぐかでした。
実際に組んでみたら、教科書どおりにいかない箇所が次々に出てきたので、動く最小構成と一緒に共有します。

なぜ「WordPress から取りに行く」ではダメだったのか
最初に考えるのは、たぶんこれです。
記事のページで JavaScript を書いて、データ元の API を直接
fetch()すればいいのでは?
これはほぼ確実に失敗します。
多くの API は CORS ヘッダを返さないので、ブラウザ側で遮断されます。
私が使いたかった API も、コマンドラインからは普通に取れるのにブラウザからは一切通りませんでした。
# これは通る
curl "https://example.com/api/data"
# ブラウザの JavaScript からは CORS でブロックされるつまりサーバー同士で受け渡す必要がある、ということです。
次に考えるのが「GitHub Pages に JSON を置いて、WordPress から取りに行く」。
これは動きますが、リポジトリを非公開にすると GitHub Pages は有料プランが必要です。
コードを人に見せたくない場合はここで詰まります。
そこで逆向きにしました。
GitHub Actions(定期実行)
└ データを取得・加工
└ WordPress の受信エンドポイントに POST
└ プラグインがオプションに保存
└ ショートコードが表示この形にすると、こうなります。
- リポジトリは非公開のままでいい
- 記事の表示時に外部通信が一切発生しない(保存済みの値を読むだけ)
- サーバーを借りる必要がない(GitHub Actions の無料枠で足りる)
3つ目が地味に効きます。
1日1回の実行なら、月の消費は10分弱です。
以下サンプルコードと知見です。

この記事だけ読みたい方は単品購入、ほかの有料記事も読みたい方は購読プランをご確認ください。
購読対象の記事・料金は、下のプラン案内で確認できます。
役に立った記事を、ブログやSNSで紹介しませんか?
紹介制度の対象記事・購読プランを購入した方は、codocで専用リンクと報酬条件を確認できます。
専用リンク経由で購入されると、設定された紹介報酬が発生します。
購読プランの紹介報酬は初回課金のみが対象です。
紹介時は、広告・PRであることが読者に分かるように明記してください。



