一人十郷 - takuminasuno.com 一人十郷
takuminasuno.com
ビジネス
2026/02/08

【備忘録】WordPressテーマをGitHub経由で管理・更新する作業手順

こんにちは。那須野です。

生成AIがものすごい勢いで進化して、AI製の文章であふれる中で、人が書く意味を問われるようになってきました。

人が書くのだとしても、多くの人がXやnoteで長文を書くようになったこの時代、WordPressでブログを運営することのメリットは何なのかも考える必要が出てきました。

でも私の答えはシンプル。そういった時代になってきたからこそ、なおさら自分でサーバーを触れること、自分で文章を考えて書けることは人間として特異な能力になっていくので、鍛えることの価値がどんどん高まっていくのではないかと感じます。

ということで少し脱線しましたが、とある件でWordPressテーマをGitHub経由で管理・更新したくなりまして、かなり久しぶりだったのでせっかくなので作業手順をまとめておこうと思います。

WordPressテーマの手動更新の限界

WordPressでオリジナルテーマを運用する場合、PHPなどでテーマファイルを作成し、それをサーバーのテーマフォルダに格納することでサイトに反映できます。

実際のところ、多くの方はテーマファイルの作成をVisual Studio Codeなどローカルの開発ツールで行い、ファイルの格納はWinSCPなどのFTPクライアントを利用してドラッグ&ドロップで反映する手動更新をするケースだと思います。

これは、もちろん今動けばよいだけのサイトであればこれでも全然良いですが、例えば

  • 自分が何を更新するのかをしっかり把握したい
  • 過去の更新内容をさかのぼって確認したい
  • チームで更新内容をレビュー・承認したい

などを実現したいとしたら、この手動更新ではなかなかに骨の折れる作業になるでしょう。

WordPressテーマをGitHub経由で管理・更新とは?

こういったケースでコードをしっかり管理したい場合は、やはりGitHubを使うのが常套手段です。GitHubは、プログラミングコードをWeb上で管理・共有できるサービスで、一定以内の利用であれば無料で使うこともできます。

GitHubの使い方としては、もちろんサーバー反映とは別にGitHubにCOMMITして記録だけ残すこともできますが、これでは本番反映したがGitHubが更新されていないとか、GitHubに反映したがサーバー反映されていないなどの漏れが出てきます。これだとイマイチですよね。

やはり、やるならGitHubに反映したらサーバーにも自動反映されるような一方向の運用であれば、漏れがなくなって理想的です。

具体的な作業としては、ローカルで開発→LocalやXAMPPによってローカルのdev環境で確認→GitHubのdevリポジトリにPUSH→stgリポジトリへのプルリク→stgリポジトリにマージ→stg環境で確認→mainにプルリク→mainにマージ→本番環境に反映という流れですね。

GitHubではアクション機能(GitHub Actions)を使うことで、リポジトリにマージされた内容(追加・編集・削除)をサーバーにあるWordPressのテーマフォルダに自動反映することができるので、今回はこれを使って設定していきます。

GitHub×WordPressテーマ連携の前提条件

ちなみに自分の場合、作業する環境は以下のとおりです。

  • サーバー:ConoHa VPS
  • サーバーOS:Rocky Linux 9.4(※CentOSと同系列)
  • Webサーバー:Apache(certbotインストール済)
  • OS:Windows 11
  • SSHクライアント:PowerShell

この環境では、すでにバーチャルホストを設定して複数のサイトを運用しており、/var/www/html/{YOUR_DOMAIN}ディレクトリにてサイトコンテンツを管理して、Let's EncriptのSSL証明書発行をcertbotで自動更新設定しているものとします。

それでは、具体的な手順をまとめていきましょう。

GitHub×WordPressテーマ連携の設定手順

大きな流れとしては、①Gitのインストール→②GitHubリポジトリの作成→③Gitローカル作業フォルダの準備→④SSH鍵の作成→⑤サーバー側のデプロイユーザーの作成→⑥GitHubのEnvironments設定→⑦ワークフローファイルの作成→⑧GitHubへのPUSH、という手順で進めます。

①Gitのインストール(事前準備)

一連の運用をPCで行うには、PCにGitをインストールしている必要があります。Windowsの場合はGit for Windowsになるので、もしまだの場合は公式サイトからダウンロードのうえ、インストールしておきましょう。

https://gitforwindows.org/

ソフトとしては、コマンドラインツールであるGit BASHと、GUIで操作できるGit GUI、その他ソフトがインストールされますが、この記事ではGit BASHの方を使っていくことにします。

初めて使う場合は、Git BASHにてユーザー情報だけは登録しておきます。

②GitHubリポジトリの作成(事前準備)

今回のプロジェクトを管理するリポジトリを立てていない場合は、GitHubにてリポジトリを新規作成します。

デフォルトのブランチ名は、今回は特に明確な意図があるわけではないので、mainのままで行きます。

③Gitローカル作業フォルダの準備

Gitのローカン作業フォルダの準備は、GitHubリポジトリにすでにファイルがあるかどうかで作業が変わってきます。

GitHubリポジトリがまっさらな状態から始まる場合、今ある作業フォルダにoriginを設定するだけでよいです。


一方、すでにGitHubリポジトリに何らかのファイルが反映されている場合、コンフリクトを防ぐため、GitHubリポジトリのコードを正としてローカルにコードをPULLしてくることで同期させます。


これで、Gitのローカルの作業フォルダを準備できました。

④SSH鍵の作成

サーバー側のデプロイユーザーのためのSSH鍵(’秘密鍵と公開鍵のセット)を作ります。秘密鍵をGitHub側に登録し、公開鍵をサーバー側に登録することで、GitHub側がサーバー側にアクセスしたときに鍵を照合して認証が通るようにするためです。環境ごとに鍵は分けたいので、本番用とステージング用で別の鍵を作ります

なお、鍵を作る際にキーフレーズを聞かれますが、キーフレーズを入力するとGitHubからの自動アクセス時に失敗するので、何も登録せずENTERで先に進みましょう。

⑤サーバー側のデプロイユーザーの作成

続いて、GitHubリポジトリが更新されたときにその差分内容をサーバーに反映するデプロイユーザーを、サーバー側で作成します。

今回は、本番環境のサイトを{YOUR_DOMAIN}で作り、ステージング環境のサイトをstg.{YOUR_DOMAIN}で作るのですが、デプロイユーザーは共通にしつつ、最低限のセキュリティを担保したいので鍵はそれぞれ別に登録します。


続いて、公開鍵を追記します。


中身は、本番用とステージング用に作った2つの公開鍵に改行を入れて登録するわけですが、悪用されないよう最低限の縛りを入れます。以下のようなイメージです。


ちなみに、私の場合はログインユーザーをsshd_configで縛っているので、漏れなく以下のコマンドでAllowUsersに半角スペースを空けて{DEPLOY_USER_NAME}を追記し、SSHDを再起動しておきます。


最後に、デプロイユーザーで実際にログインできることを、本番用とステージング用の鍵で確認できたらユーザー作成が完了です。

⑥GitHubのEnvironments設定

続いて、GitHub側での連携設定を進めます。GitHubリポジトリにてSettings→Environmentsを開き、本番用とステージング用のシークレットを登録していきます。

具体的には新しいEnvironmentをprod, stgにて作成し、それぞれ以下のようなシークレットを登録します。

⑦ワークフローファイルの作成

GitHubのブランチにPUSHしたらサーバーに反映されるよう、コードの中にワークフローを定義します。具体的には、作業フォルダに.github/workflowsフォルダを作り、環境ごとにyamlのワークフローファイル(deploy-prod.yml, deploy-stg.yml)を作成します。


実際に書き込む内容は、以下のような内容です。


⑧GitHubへのPUSH

ワークフローファイルを作ったので、これを実際にGitHubに反映します。まずはdevにPUAHをします。


その後、GitHubリポジトリを開き、devからstgにプルリクを出してマージすると、ステージング環境のWordPressテーマが自動更新されます。さらに、stgからmainにプルリクを出してマージをすると、本番環境のWordPressテーマが自動更新されます。

これでバッチリですね!

まとめ

このプロセスは、実際にやってみると思わぬところでエラーに遭遇したりします。

例えば、SSH鍵にパスフレーズを設定していたためにGitHub Actionsが途中で止まってしまったり、Envionmentsに逆の鍵(stg用であるべきなのにprod用、秘密鍵であるべきなのに公開鍵など)を設定してしまっていたり、stgとstagingなど表記揺れで失敗したり、作ったデプロイユーザーのログインが許可されていなかったりなど…

ただ、一度設定できれば後はすごく効率的に運用できるので、そこは良いですね。

以上、WordPressテーマをGitHub経由で管理・更新する作業手順の備忘録でした。この投稿が、いつか誰かの役に立ったら幸いです。

同じカテゴリーの投稿もどうぞ!
【備忘録】生成AIが作ったWebアプリをバーチャルホストを使って独自ドメインで自前のサーバーに展開する手順
ビジネス
2026/02/15
【備忘録】生成AIが作ったWebアプリをバーチャルホストを使って独自ドメインで自前のサーバーに展開する手順
ChatGPTのチャット画面から日本語で指示してBigQueryのデータを更新しながら分析してみた話
ビジネス
2025/08/27
ChatGPTのチャット画面から日本語で指示してBigQueryのデータを更新しながら分析してみた話
ChatGPTのチャット画面から分析指示を書いて、BigQueryにアクセスさせてデータ分析させる話
ビジネス
2025/06/02
ChatGPTのチャット画面から分析指示を書いて、BigQueryにアクセスさせてデータ分析させる話
Dataformによるデータパイプラインの構築と運用の進め方【基本の総集編】
ビジネス
2025/03/17
Dataformによるデータパイプラインの構築と運用の進め方【基本の総集編】
SQLによるデータ分析のレベル感の所感について
ビジネス
2025/03/11
SQLによるデータ分析のレベル感の所感について
ブログ著者について
那須野 拓実(なすの たくみ)。たなぐら応援大使(福島県棚倉町)。トリプレッソを勝手に応援していた人。元語学屋。時々写真垢とか手芸垢。山とか滝とか紅葉とかが好き。本業はナレッジマネジメントとかデータ分析とかの何でも屋。コロナワクチン接種済み。