「宮本大樹 公認会計士・税理士事務所」のGoogleビジネスプロフィールを作っています。
ここにWordPressの記事を自動連携させる方法は、大きく2つ。
- 既存プラグインを使う方法
- 自作する方法
私は自作しました。
そもそも既存プラグインの存在を知らなかったということもあるのですが、
作ってみて、かなり愛着を感じます。
この記事では自作をメインに解説します。
ただ、既存プラグインを使う方が楽ではあると思いますので、ざっくり比較してみます。
| 比較項目 | 既存プラグイン | 今回つくった仕組み |
|---|---|---|
| 導入の手軽さ | ◎ 比較的簡単に始められる | △ API連携などの初期設定が必要 |
| 自動投稿 | ◎ WordPressから自動投稿できる | ◎ WordPressから自動投稿できる |
| 自分の運用への対応 | ○ 用意された設定の範囲で調整 | ◎ 投稿文や画像などを自分の運用に合わせられる |
| 機能の変更・追加 | △ プラグインの仕様に左右される | ○ 必要に応じて自分で変更・追加できる |
| 必要な機能への絞り込み | ○ 必要な機能を選んで利用できる | ○ 必要な機能を中心に構成できる |
| メンテナンスの手軽さ | ◎ 基本的に開発者の更新に任せられる | △ 仕様変更などには自分で対応する必要がある |
◎:強み ○:対応可能 △:やや手間・制約あり
※既存プラグインは、Auto Publish for Google My Businessといったものがあります。

なぜ自動化の仕組みをつくったか?
いま、私の運用としては、
の2つのサイトで、記事を公開したときにGoogleビジネスプロフィール(以下、GBP)へ自動連携されるようにしています。
書いた記事を転載するだけとはいえ、
投稿文の作成等を踏まえると、1記事に5分くらいかかるかなと。
どちらも毎日投稿していますので、
「2記事×5分=10分/日」です。
年間で考えると、
365日×10分=3,650分 → 約60時間
単純計算ですが、積み重なるとなかなかの時間です。
だからこそ、自動化した方がいいと考えてつくった、という話です。
ちなみに安定軌道に乗るまでに実際にかかった時間は、
339分 → 約6時間でした。
単純計算なら、1か月ちょっと運用すれば、仕組みづくりに使った時間は回収できる計算です。
実際にやった3ステップ
こんな感じで、記事を公開すると自動投稿される仕組みです。

既存プラグインも無料の範囲でかなり柔軟に使えそうですが、あえて自作でしかできないことを挙げるとこんな感じです。
| 自作版でやっていること | 既存プラグイン |
|---|---|
| 投稿タイプごとにGBP用の共通画像を設定する | △ 標準機能としては確認できず |
| 共通画像を個別アイキャッチより優先する | △ 標準ではアイキャッチ画像を利用 |
| YoastのメタディスクリプションをGBP投稿文に自動利用する | △ 標準機能としては確認できず |
| 「個別案内文→メタディスクリプション→定型文」と自動で使い分ける | △ 投稿文のテンプレート・個別変更はできるが、この自動判定は確認できず |
| 投稿タイプごとに画像・投稿文などの運用ルールを変える | △ 投稿タイプは選べるが、投稿タイプ別ルールは確認できず |
| 標準機能にない挙動を自分仕様で追加・変更する | △ 標準機能外はコード改修などが必要 |
では、作り方の概要を3ステップでみていきましょう。
STEP1|Googleビジネスプロフィールを用意する
まず、大前提となるGBPを用意しましょう。
Googleアカウントがあれば無料で作成が可能です。
※こちらから作成できます。
既に自社ホームページなどをお持ちであれば、それをベースに、ChatGPTなどにGBPの登録内容を整理してもらうのもありでしょう。
STEP2|WordPressとGBPをAPIでつなぐ
Google Cloud側で必要なAPI設定やOAuth認証を行い、WordPressからGBPへ投稿できる状態にします。
技術的な話を細かく書くと膨大な量となるため、ここでは省略しますが、少し時間がかかったポイントです。
Google側にAPIの申請→承認のステップが必要となるのですが、ここの承認がなかなか下りず…。
個別に問い合わせもして承認をしてもらった感じです。

STEP3|WordPress側に自動投稿の仕組みをつくる
プラグインを作って対応します。
これはChatGPTと相談しながら作りました。
こんなZipファイルです。

最初から思い通りの機能につくれるわけではなく、
基本的にはトライアンドエラーの繰り返しです。
たとえば今回だと、
以下のような形で10バージョンほど試しながら作り変えてきました。
長いので、ご興味ある方だけ開いていただければ。
| 段階 | 主な変更 | きっかけ・狙い |
|---|---|---|
| 構想段階 | WordPressの記事をGBPへ自動投稿する仕組みを検討 | ブログ更新後にGBPへ毎回手動投稿する手間をなくしたかった |
| 初期検討 | タイトル・抜粋・記事URL・アイキャッチを取得してGBPへ投稿する設計 | まずは最低限の自動投稿を実現 |
| API連携 | Google Cloudプロジェクトを作成し、Business Profile APIの利用申請・OAuth設定 | WordPressからGBPを操作するため |
| v0.1系 | WordPress管理画面からGoogleアカウントへ接続できるように | GAS経由ではなくWordPressプラグインとして運用する形へ |
| v0.1.1 | refresh tokenを暗号化してDBへ保存。access tokenは一時保存に変更 | 認証情報を平文で保存しないようにした |
| v0.1.2 | 「Googleと接続」ボタンが押せない不具合を修正 | disabled="false"でもHTML上は無効になる問題があった |
| v0.2.0 | 初回公開時の自動投稿、記事URL、アイキャッチ、LEARN_MOREボタン、GBP投稿ID保存などを実装 | 実運用できる基本機能を一通りそろえた |
| v0.2.0 | GBP投稿IDをWordPress側へ保存 | 同じ記事を二重投稿しないため |
| v0.2.0 | 公開済み記事からGBP投稿を更新・削除できるように | 自動投稿後もWordPress側から管理したかった |
| v0.2.1 | 投稿文を「個別案内文 → Yoastメタディスクリプション → 定型文」の順で決定 | 毎回GBP用の文章を書く手間を減らしたかった |
| v0.2.2 | Yoast SEOのメタディスクリプションを直接取得 | 過去記事などで既存のメタディスクリプションをそのまま活用したかった |
| v0.3.0 | 自動投稿する投稿タイプを管理画面で選択可能に | 通常ブログ以外もGBPへ投稿したくなった |
| v0.3.0 | postだけでなくFAQなどのカスタム投稿タイプにも対応 | 会計事務所サイトのFAQも同じGBPへ連携するため |
| v0.3.0 | 対象外の投稿タイプにはGBP用の入力欄自体を表示しない仕様に | 固定ページなど、投稿しないコンテンツでは余計なUIを出さないため |
| v0.4.0 | 投稿タイプごとのGBP用デフォルト画像を設定可能に | FAQなど、記事ごとに適切なアイキャッチがない場合にも画像付きで投稿したかった |
| v0.4.0 | WordPressのメディアライブラリから共通画像を選べるように | コードを書き換えず管理画面から画像を変更するため |
| v0.4.0 | 当初は「個別アイキャッチ → 共通画像」の優先順位 | 記事固有の画像があれば、それを使う設計だった |
| v0.4.1 | 初回公開時の投稿処理を保存完了後へ変更 | 新規公開時だけ案内文やYoastメタディスクリプションを拾えない問題が発生 |
| v0.4.1 | 遅延処理・フォールバックを追加 | Gutenbergでは本文保存とカスタム項目保存のタイミングがずれるケースがあった |
| v0.4.1 | 二重投稿防止のロックを強化 | 遅延投稿を追加しても同じ記事を2回送らないため |
| v0.4.1 | 「案内文を入力したのにGBPへ反映されない」問題を修正 | 実際の新規投稿で発覚した保存順の問題 |
| v0.4.2 | 画像の優先順位を変更 | 運用してみると記事固有画像より統一画像を使いたくなった |
| v0.4.2 | 「投稿タイプ別共通画像 → 個別アイキャッチ」の順に変更 | ブログなら「ブログ更新」、FAQならFAQ用画像、とGBP上の見た目を統一するため |
自作するのであれば、少しずつ自分に合うようにつくり込んでいくイメージで取り組むといいかなと。
気付いたら既存プラグインでは対処しづらい領域まで踏み込んでいることもあります。

つまずいたポイント
まず、GBPを昔につくって放置していたのを思い出すところから。
記載内容も少し古くなってきていたので、自動連携うんぬんの前に、GBP自体の見直しで少し時間がかかりました。
つぎに、実際の設定の段階では、API連携の設定に少し手間取りました。
前述のとおり、なかなかGoogleから承認が下りず。
まぁ、待ち時間が長かっただけで時間を浪費したわけではないのですが、やっぱり少しモヤモヤは残ります。
あとは、
- 連携できる状況なのに連携ボタンがない
- GBPにブログのアイキャッチ画像をそのまま使うと違和感あり
- 画像が見切れる
とか、根本的な部分から形式的な部分まで結構あります。
ただ、このあたりを柔軟につくり込んでいけるのが自作のメリットかなぁ、と。
既存プラグインだと、オープンソースであってもなかなか変更のハードルは高いですから。
まとめ
ということで、それなりに時間を使ったものの、
- 今後のGBPへの連携時間がほぼゼロ
- ブログのネタにできた
- Google Cloudの仕組みが(少しだけ)分かった
ので、まぁ元は取れたかなと。
今回、既存プラグインがあることを知らないまま作成を始めましたが、
知っていても自作したかなぁ、という感想です。
では、また次回。
編集後記
◇日記
昨日はオフ。義父母が遊びに来てくれ、子どもたちは大満足のようでした。
夕方から長男の空手練習に送迎など。
◇ブログネタ経緯
ふと書きたい思いが湧き執筆へ。
◇1日1新
オートビズのクリックカウント