Gemini API×WordPressでブログ自動投稿システムを構築しようと思っている



最近、LLM(大規模言語モデル)を活用した開発が非常に盛り上がっているけど、僕も「Gemini APIを使って記事を生成し、WordPressへ自動投稿するシステム」の構築を検討し始めた。

「毎日1回、自動でブログ記事が更新される仕組み」を作るにあたり、システム構成やプロンプトの設計方針、そして「どんなテーマなら自動投稿ブログとして成立するか」を深掘りして検討してみたので、その内容を一旦整理してまとめてみた。

開発するシステムの全体像

今回目指しているシステムの基本フローはシンプル。

  1. テーマ・プロンプトの取得:あらかじめ準備したデータベース/JSONから本日のテーマを取得

  2. Gemini APIで記事生成:最新の google-genai SDK を使い、タイトル・HTML本文・メタ情報・画像検索ワードを一括生成(JSON Mode)

  3. アイキャッチ画像の取得:Unsplash等の無料画像APIからテーマに合った画像を取得

  4. WordPress REST APIで投稿:アイキャッチ画像をWordPressのメディアライブラリに登録し、記事を下書き(または自動公開)で投稿

  5. 定期実行(cron):Linuxサーバー上で1日1回Pythonスクリプトを自動実行

自動投稿ブログで直面する「テーマ枯渇」と「重複」の課題

最初は「Geminiに毎回プロンプトで『今日のテーマ』から考えさせればいいのでは?」と考えていたけど、検討を重ねる中で重大な問題が見えてきた。

  • 抽象的なテーマだと1〜2ヶ月でネタ切れする

  • リアルタイム生成だと過去記事との重複(カニバリズム)が発生する

  • SEO的にも質の低いコンテンツになりやすい

自動投稿ブログを成功させるためには、「普遍的で、事実関係の崩れにくいテーマ」を、いかに解像度高く(具体的に)分解して提供できるかが鍵になる。

解決策:事前テーマ1000件をリスト化

そこで行き着いた方針が、「事前にGeminiを使って子記事・孫記事レベルの具体的なテーマリストを大量生成し、データベース(またはJSON)で管理する」というアプローチだ。

毎回の自動実行時にテーマを考えさせるのではなく、あらかじめ用意したリストから未投稿のものを1つずつ消費していく方式に切り替えた。

1000件のテーマを生み出す切り口

ターゲットとする分野を、自分が得意な領域を含めて以下のように広げた。大テーマはやはり得意なIT系。

  • 基礎・Web・DB:Python / Web開発 / Git・GitHub / データベース(SQL)

  • 言語・アプリ:C# / Java / Go / Android開発

  • 業務効率化:GAS (Google Apps Script) / Excelマクロ (VBA)

これらの各分野において、単なる「初心者向けガイド」ではなく、「具体的に手が動く逆引き・トラブルシューティング・実践テクニック」にまでテーマを細分化する。

  • NGなテーマ例:「VBAの使い方ロードマップ」

  • OKなテーマ例:「VBA処理を爆速化する3つの定型コード(画面更新停止・自動計算停止・イベント停止)」

このように10分野 × 約100件の具体テーマに分解することで、約1,000件(毎日投稿で約3年分)のテーマストックが確保できる計算になる。

事前リスト方式がもたらす3つのメリット

  1. テーマの重複を100%防げる 投稿済みのテーマにフラグ(published)を立てて管理するため、同じような記事が生成されるリスクがなくなる。

  2. ゴミテーマの事前検品(QA)が可能 Geminiが生成したテーマリストを事前に目視確認し、不要なテーマや不自然なタイトルを削除・修正できる。

  3. システムがシンプルになりエラーに強い API呼び出し回数が減り、レスポンス崩れや通信エラーによるシステム停止リスクを大幅に軽減できる。

次のステップ

基本構想と「1,000件テーマによる完全自動投稿方針」まで決まったので、次は実際のコード実装に移る。

  • WordPressのアプリケーションパスワード設定

  • テーマ管理用のJSON/SQLite構造の定義

  • google-genai SDKを使った記事生成プロンプトの調整

  • WordPress REST APIへのPOST処理の実装

システムが完成して実際に運用を開始したら、記事の生成精度やWordPress連携の挙動についてもまたレポートしたいと思います!