WordPressテーマは、WordPressサイトの最も重要な要素の一つです。サイトの外観とコンテンツの表示を管理するテーマは、あなたのサイトをモダンでプロフェッショナルでブランドに似たものにします。

そのため、テーマを最新の状態にしておき、常に正常に機能するようにすることが重要です。

しかし、それは簡単な作業でない場合もあります。WordPressテーマをカスタマイズしている場合、更新するとカスタマイズ内容が失われる危険性があります。サイトのプラグインが、テーマの新しいバージョンと互換性がない場合、更新するコードと更新しないコードを指定する必要があります。また、カスタマイズしたテーマでWooCommerceストアを運営している場合は、ストアが更新後にも機能することを確認する必要があります。

WordPressのテーマを更新する方法について動画での解説もご用意しています

本記事では、WordPressテーマを更新する手順をご紹介します。次の内容を網羅しています。

準備はいいですか?それでは始めましょう!

WordPressテーマを最新の状態に保つべき理由

WordPressサイトのコードを最新の状態に保つことは非常に重要です。プラグイン、テーマ、そしてWordPressコアのバージョンが更新されるのには理由があります。更新しないと、サイトが危険にさらされる可能性があります。サイトを常に最新の状態に保つべき3つの理由であるセキュリティ、互換性、そして機能を見てみましょう。

#1 セキュリティ

サイトのコードを常に最新の状態にしておくべき最も重要な理由はセキュリティです。

テーマ、プラグイン、そしてWordPressコアのアップデートの主な内容はセキュリティパッチです。マイナーリリースとは、セキュリティの脆弱性を修正するために設計されています。

WordPressはオープンソースシステムで、セキュリティの問題などの課題についてソフトウェアを監視する積極的なコミュニティがあるため、弱点は公開され、できるだけ早く修正されます。

積極的なコミュニティにのおかげで、脆弱性を迅速に特定して修正することができることはWordPressの利点の一つです。

しかし、欠点もあります。パブリックであるため、サイトを攻撃したい人は、たとえば、テーマのあるバージョンの問題を知っているということです。そのバージョンのテーマを使用しているサイトをターゲットにすることがあります。

そのため、アップデートがリリースされたらすぐに、テーマ、プラグイン、そしてWordPressコアをアップデートして、ターゲットにならないようにする必要があります。

便利なセキュリティプラグインをインストールすると、テーマの新しいバージョンがリリースされたときに通知が表示されるため、更新を実行しない手はありません。以下では、更新中にも更新後もサイトが正常に機能するように、更新を実施する安全な方法をご案内します。

サイトを最新の状態にしておくことにより、セキュリティが強化されることをおわかりいただけたでしょうか。

#2 互換性

テーマが更新されるもう一つの理由は、WordPressの最新版との互換性を確保するためです。テーマのアップデートは、WordPressの新しいバージョンがリリースされるとすぐに、または、しばらくするとリリースされます。優れたテーマ開発者は、WordPressの新しいバージョン(および作成中の開発バージョン)に対してテーマをテストし、互換性に必要な変更を加えます。

ただし、時間の経過とともに、WordPressの新しいバージョンがリリースされ、テーマに互換性の問題が発生する可能性があります。私の経験では、テーマがプラグインよりも互換性が低くなることはあまりありませんが、それでも注意すべきでしょう。

テーマを更新するときは、まずWordPressの最新版を利用しているかどうかを確認する必要があります。

#3 機能

テーマを最新の状態にしておく3つ目の理由は、開発者が追加した新しい機能を最大限に活用することです。

ユーザーが追加の機能をリクエストしたり、テーマがWordPress自体の新しい機能(例えばGutenbergなど)を利用したりするため、新しい機能が追加されることがあります。

ご利用中のテーマにサイトを強化する新機能があるなら、是非とも利用したいものですよね?

WordPressのテーマを安全に更新する方法

WordPressでのテーマの更新は非常に簡単です。 「ダッシュボード」> 「更新」に移動してテーマを選択し、「テーマの更新」ボタンをクリックするだけです。

WordPressのテーマの更新
テーマの更新

…ここで注意点があります!「更新」ボタンをクリックするだけで完了だとお考えかもしれません。確かに、これでテーマが更新されます。しかし、安全に更新されるわけではありません。

WordPressウェブサイトのどの要素(テーマ、プラグイン、WordPressコア)もそうですが、更新するたびに、サイトのバックアップを作成し、更新後のそれをテストして、正常に機能しているかどうかを確認する必要があります。本番のWordPressサイトに触れずにこれを行うには、まずサイトのWordPressステージング環境で更新を試してみるのが得策です。

さて、詳細な手順を見てみましょう。

最初にバックアップを作成する

注意)サイトで更新を実行する前に、必ずバックアップを作成する必要があります。アップデートによってサイトが破損した場合に、復元できるためです。

以下のアドバイスに従い、常にステージング環境でテストを行うと、問題が発生する可能性は非常に低くなります。結局のところ、テストを怠らないことが重要です。安全を第一に考えましょう!

毎日の自動バックアップ
毎日の自動バックアップ

Kinstaのお客様には、サイトの毎日の自動バックアップをご利用いただけます。ただし、更新の直前に手動バックアップも作成いただけます。前回の自動バックアップ以降にサイトに変更が加えられた可能性があるため、手動バックアップの作成をお勧めします。

手動バックアップを作成するには、MyKinstaで該当するサイトに移動し、メニューの「バックアップ」を選択して、「手動」タブを選択します。最大5つの手動バックアップを作成いただけます。各バックアップは14日間保持されます。

Kinstaの手動バックアップ
Kinstaの手動バックアップ

更新中に問題が発生し、サイトを復元する必要がある場合は、ワンクリックでバックアップを復元可能です。

MyKinstaの「バックアップ」タブにアクセスし、バックアップの横にある「復元先を選択」メニューから対象を選択します。ステージングサイトにも本番サイトにも復元できます。バックアップの作成後にサイトに加えられた変更(他のユーザーがコンテンツを追加するなど)を失わないように、これをすばやく実行しましょう。

Kinstaのお客様ではなく、ご利用のホスティング会社がサイトの簡単なバックアップ手段を提供していない場合は、バックアッププラグインを使用する必要があります。無料のUpdraft Plusプラグインでは、自動バックアップも手動バックアップも作成でき、復元手順も比較的簡単です。一方、Kinstaのお客様である場合は、Kinstaのすべてのプランに自動バックアップが含まれているため、バックアッププラグインは不要です。

更新を実行するタイミング

まず、更新を実行するのに最適なタイミングから考えましょう。サイト訪問者のダウンタイムや混乱を最小限に抑える必要があるため、訪問者数が最も少ない時間帯(または曜日)に更新を実行するのが理にかなっています。

「あなたがサイトを使用する可能性が最も低い時間帯」を無根拠に対象としないことです。海外からのアクセスがあれば、日本の深夜に訪問者数が伸びているかもしれません。

Google アナリティクスなどのツールを使用して、サイトへのアクセスが最も少ない時期を特定し、それに応じて更新のタイミングを決めましょう。

この情報を入手したら、該当する時間帯または曜日にサイトの更新を行います。ステージングサイトでテストを同じタイミングで行う必要はありません。都合の良いときに行ってください。ただし、本番サイトに変更内容を反映する際にはダウンタイムが発生するため、混乱が最も少ない時間帯を選んでください。

Easy Updates Managerプラグインの有料版では、更新を自動化したり、手動で予定を設定したりできます。

Easy Updates Managerプラグイン
Easy Updates Managerプラグイン

ステージングサイトを使用した更新

テーマを更新する前に、更新が正常に機能するか、サイトのその他のコードとの互換性があるか、サイトが更新後も機能するかをテストします。

テストには、一般に公開されていない、万が一破損が生じたとしても全く問題のない環境を使用する必要があります。

最適なのが、ステージング環境です。なぜかというと、ステージング環境は本番環境と同じサーバーにある、本番サイトのコピーであるためです。つまり、ステージング環境で機能するものは、本番サイトでも機能します。

WordPressステージング環境
WordPressステージング環境

Kinstaでは、サイトごとにステージング環境を作成することができ、必要に応じて、プレミアムステージング環境を5つまで追加することができます。テーマの更新をテストしてみる前に、ステージング環境を最新の状態にしておきましょう。これを行うには、既存のものを削除して新しいものを作成します。または、先ほど作成した本番サイトのバックアップをステージング環境に復元することもできます。

MyKinstaで作成されたステージングサイト
MyKinstaで作成したステージング環境

本番サイトのコピー(ステージング環境)ができたら、https://staging-sitename.kinsta.cloudというURLを使用します。(sitenameはあなたのサイトの名前です)このURLでステージング環境に移動し、ログイン、更新、テストなどが行えます。

ステージング環境でのテストが完了したら(その詳細は後程します)、MyKinstaのステージング環境に戻り、「ステージング環境を公開」ボタンをクリックできます。これにより、ステージング環境に加えたすべての変更が本番環境に反映されます。サイトが正常に機能しているかを確実に確認するために、本番環境で最終確認を実行することも忘れないでください。

アップデートのテスト

ステージング環境を作成し、テーマの更新を実行する準備ができている段階まで来た(テストを開始できる)とします。その後のステップは何でしょうか?

以下の通りです。

  1. テーマがご利用中のWordPressバージョンと互換性があるかどうかを確認してください。そうでない場合は、WordPressを更新する必要がある場合があります(WordPress更新を優先しましょう)。こちらのテスト手順に従って、ステージング環境を使用し、更新をテストした上で本番環境に反映してください。
  2. WordPressの管理画面の「テーマ」画面でテーマを更新します。テーマ名の下にある「更新」をクリックするか、サードパーティのプロバイダーからテーマを購入した場合は新しいバージョンをアップロードします。
  3. サイトのステージング環境が正常に機能するかをテストします。さまざまなコンテンツタイプ(ホームページ、個々の投稿と固定ページ、アーカイブページ、カスタム投稿タイプ、分類など)をテストします。ウィジェットメニューに問題がないことを確認します。フォームの送信や購入などのプロセスもテストします。テストの具体的な内容はサイトによって異なりますが、テストを徹底的に実施することが重要です。サイトにざっと目を通すだけで、すべてのコンテンツタイプやプロセスをテストしなかった場合には、ユーザーが購入する際やフォームに入力する際などに、問題が発生している可能性があります。
  4. テーマの更新によりサイトが壊れた場合は、テーマのサポートフォーラムに移動し、既知の問題がないか確認してください。管理画面で「テーマ」を開き、該当するテーマをクリックすると、アクセス情報が表示されます。現在のバージョンの詳細のリンクをクリックすると、右側のサイドバーに「サポートフォーラムを表示」ボタンが表示されます。他のユーザーが同じ問題を抱えていないか見てみましょう。
  5. 他のユーザーが報告していない問題が発生した場合は、テーマ開発者に報告してください。これは開発者による問題解決を後押しします。そして(問題が解決されたと思われる)新しいバージョンがリリースされたときにも、ここまでの手順を繰り返します。
  6. すべてが正常に機能していることを確認できたら、ステージング環境で徹底的にテストしたからこその安心を胸に、本番サイトへの反映を行うことができます。

カスタムのWordPressテーマを更新するには

しかし、すでにテーマを編集していて、その変更内容を失うことなくテーマを更新したい場合はどうすれば良いのでしょうか?

簡単ではありませんが、変更内容、具体的に言えば変更したファイルを覚えている限り、不可能ではありません。

子テーマを使用してカスタムのWordPressテーマを更新するときの問題を回避する

手を加えたWordPressテーマを安全に更新するには、子テーマを作成して、変更内容をその子テーマに追加します。サイトで子テーマを使用しているかどうかが不明な場合は、WordPressテーマ検出ツールを使って調べることができます。

これを行うには、編集したテーマファイルを使用して子テーマを作成します。ステージングサイトで次の手順に従います(100%正しく実施しないと、本番サイトが壊われてしまう可能性がありますのでご注意ください)。

  1. 親テーマのバックアップを作成して、ローカルマシンにコピーします。これにより(見落としがあり)テーマ更新後に編集をしなければならなくなった場合に使える、編集版テーマのバックアップが確保できます。
  2. 既存のテーマから子テーマを作成します。親テーマの詳細を含むスタイルシート(上記を参照)と、親テーマからスタイルをエンキューする関数ファイルを追加します。
  3. 親テーマの関数ファイルに加えた変更を特定します。新しい関数を子テーマの関数ファイルに貼り付けます。
  4. 親テーマのスタイルシートに加えた変更を特定します。このコードを子テーマのスタイルシートに貼り付けます。これにより、親テーマの同じ要素、クラス、またはIDのスタイル設定がオーバーライドされます。
  5. 編集したテンプレートファイルやインクルードファイルを特定します。これらを子テーマにコピーします。ファイルがサブディレクトリにある場合は必ず同じファイル構造を使用してください。
  6. 親テーマではなく、子テーマをアクティブ化します。
  7. サイトをテストします。テーマに加えたカスタマイズ内容をすべて確認します。編集・コピーしたテンプレートファイルがありますので、特にこれを用いて表示されるページを念入りに確認します。
  8. ファイルを再確認して、編集したファイルの見逃しがないようにしましょう。
  9. 「テーマ」画面で(またはテーマディレクトリ以外の場所から取得したテーマの場合はテーマをアップロードして)、ステージング環境の親テーマを更新します。
  10. サイトを再度テストします。編集したテンプレートファイルが正常に機能しているかを確認します。不足しているものがある場合は、親テーマの編集済みバージョンのバックアップを再確認し、必要なものをすべて子テーマにコピーします。
  11. サイトを再度テストします。ステージングサイトが機能していることに満足したら、ステージングの変更内容を本番サイトに公開します。(最初に必ず本番サイトのバックアップを作成しましょう。)本番サイトをテストして、完了です。

これを一回実施すれば、次に親テーマを更新するときに二度と繰り返す必要はありません。ただし、今後はさらなる変更を加える場合は、その変更を親テーマではなく子テーマに加えましょう。変更を加える前に子テーマのバックアップを作成し、変更内容をステージングサイトでテストし、徹底的な作業のためにGithubなどのバージョン管理システムを使用しましょう。

GitHubのウェブサイト
The GitHubのウェブサイト

親テーマの更新:子テーマに変更を加える

場合によっては、親テーマを更新すると、子テーマに加えた変更が原因でサイトが破損することがあります。

変更された、または削除された親テーマのフックに関数をアタッチした可能性があります。子テーマのテンプレートファイルが親テーマのテンプレートファイルと一致していない可能性があります。つまり、子テーマによって生成されたページは、サイトの他の部分と一致していません。

この場合、次の2つの対策のいずれかを実施してください。

  • 子テーマからファイルを削除して、子テーマの関連ファイルを使用しないようにします。場合によっては、親テーマが更新されると、子テーマで行った変更と同様に機能するようになるため、子テーマのファイルは不要になります。子テーマからファイルを削除すると、WordPressは親テーマのファイルを使用します。
  • 子テーマのファイルを編集して、親テーマと一致するようにします。

前者を使用する場合は、ステージングサイトでテストし、編集する前に子テーマのバックアップを必ず作成してください。繰り返しますが、Githubは各バージョンの変更内容を把握するのに役立ちます。

後者を使用して子テーマのファイルを編集する場合は、子テーマでで行った変更の内容と、親テーマで行われた変更の内容と、それらの相互作用を正確に把握する必要があります。親テーマの以前のバージョンと新しいバージョンのコード、および子テーマの以前のバージョンと新しいバージョンのコードを比較することは便利です。そうすると、問題が発生した場所を把握して修正できます。

テーマリポジトリのリリースノート、または開発者のウェブサイトにあるより詳細なドキュメントなど、親テーマの該当リリースのドキュメントをお読みください。これは、子テーマに影響を与える変更内容を特定するのに役立ちます。

繰り返しますが、バックアップを必ず作成して、徹底的にテストしてください。

今後も安全に更新できるようにWordPressのテーマをカスタマイズするには

今のところテーマをカスタマイズしていないものの、今後そうしたい場合には、最初から子テーマに変更内容を追加すると楽です

テーマディレクトリまたはテーマ販売元からのテーマを直接編集する場合、テーマ更新に際して、変更内容が失われます─新しいテーマファイルにより編集済みのファイルが上書きされるため、それまでの作業が無かったことになるのです。

ですので、サードパーティのテーマを直接編集してはなりません。サードパーティのテーマを正しく編集するには、そのテーマの子テーマを作成し、子テーマを編集するようにします。

さて、子テーマの概要と、子テーマを使用してカスタムWordPressテーマを安全に更新(および編集)する方法を詳しく見てみましょう。

子テーマを使用してテーマを更新するときの問題を回避する

子テーマは、親テーマと連絡し合ってサイトを動かします。親テーマを上書きせずに、デザイン要素や関数などの追加機能を親テーマに追加します。子テーマで特定のファイルを作成し、親テーマの同じファイル名のファイルをオーバーライドします。これをWordPressのテンプレート階層と組み合わせて、あるページを表示するために使用するテーマテンプレートファイルをWordPressに指示します。

テーマテンプレートファイルのことが分からない方のために、例を挙げて説明いたします。

既存のテーマには、アーカイブページを表示するための3つのファイルがあります。

  • カテゴリのアーカイブページを表示するcategory.phpファイル。
  • より具体的なファイル(category.phpなど)が存在しない限り、すべてのアーカイブタイプを表示するarchive.phpファイル。つまり、このファイルは「タグ」アーカイブなどには使用されますが、「カテゴリ」アーカイブには使用されません。
  • より具体的なファイルがないコンテンツタイプのフォールバックファイルであるindex.phpファイル。この場合、archive.phpファイルがあるため、index.phpファイルを使用するアーカイブページはありません。

サイトにアーカイブを表示するとき、WordPressはこの階層を順番に参照し、最初のファイルを選択します。「カテゴリ」アーカイブの場合、これはcategory.phpになります。「タグ」アーカイブの場合、テーマにはtag.phpファイルがないため、archive.phpになります。

ただし、子テーマを作成する場合、WordPressは常に、親テーマのファイルではなく、子テーマにある階層の最上位のファイルを選択します。

つまり、archive.phpファイルのある子テーマを作成すると、次のようになります。

  • カテゴリの場合、WordPressは階層上の位置が高いため、親テーマのcategory.phpを使用します。
  • タグの場合、子テーマのファイルが親テーマの同じファイル名のファイルをオーバーライドするため、子テーマのarchive.phpが使用されます。

つまり、テーマのファイルを編集する場合は、子テーマを作成し、そのファイルを親テーマから子テーマにコピーして、子テーマの方のファイルを編集します。親テーマの元のファイルは変更されないため、テーマを更新しても作業内容は失われません。また、更新後であっても、WordPressは、親テーマの更新されたarchive.phpファイルではなく、子テーマのarchive.phpファイルを使用します。

これにより、テーマを更新する際に次の2つのことが発生します。

  • 子テーマを作成すると、編集内容を失わずに親テーマを更新できます。
  • 親テーマを更新する度に、子テーマと競合するコードの変更を確認する必要があります。

後者については間もなく説明します。しかし、子テーマを使用して、テーマに加えたい編集内容を保存するにはどうすればよいでしょうか。詳しく見てみましょう。

  1. 子テーマを作成します。これには、親テーマのスタイルをエンキューするスタイルシートと関数ファイルが必要です。
  2. 親テーマの編集したいファイルを特定します。
  3. 編集したいファイルが関数ファイルまたはスタイルシートである場合は、その2つのファイルをコピーせずに、新しいコードを、子テーマで作成したスタイルシートおよび関数ファイルに追加します。
  4. 編集したいファイルがテンプレートファイルまたはインクルードファイルである場合は、そのファイルを子テーマに複製して、親テーマから正確にコピーします。同じファイル構造を使用してコピーします。たとえば、ループファイルがparent-theme-folder/includes/loop.phpにある場合は、child-theme-folder/includes/loop.phpにコピーします。
  5. 子テーマのファイルを編集します。
  6. WordPress管理画面で親テーマではなく、子テーマを有効化します。

以上です!唯一の追加作業は、すばやく簡単にできる子テーマの作成です。これにより、テーマを変更する必要があるときは、代わりに子テーマを編集できます。そうすれば、親テーマを更新しても、作業内容が失われることはありません。

WooCommerceサイトのWordPressテーマを更新するには

WooCommerceをご利用の場合は、テーマを編集してWooCommerceと互換性があるようにしているかもしれません。

これは、WooCommerceのバージョン3.3より前のバージョンを使用している時にのみ必要です。WooCommerceのチームからのアドバイスは、プラグインをアップグレードすることです。そうすると、テーマの方の互換性を確保するための追加のコードは不要になります。

ただし、何らかの理由でWooCommerceの最新のバージョンに更新できない場合は(これはお勧めできませんが)、テーマの更新を実行する前に、テーマに加えた変更内容を子テーマにコピーします。

次の2つの方法のいずれかでこれに取り組むことができます。

  • woocommerce_content()関数をテーマに作成したwoocommerce.phpファイルに追加している場合は、現在のテーマを親テーマとして使用して、そのファイルを子テーマにコピーするだけです。
  • WooCommerceフックを使用している場合は、コードをテーマの関数ファイルから子テーマの関数ファイルにコピーします。ファイル全体ではなく、該当のコードのみをコピーしてください。

テーマにテンプレートファイルを追加して、WooCommerceのテンプレートファイルを上書きしている、というパターンの方がより一般的かもしれません。これはWooCommerceのすべてのバージョンで起こり得ます。

これを行っている場合には、子テーマを作成した上で、前述のテンプレートファイルを子テーマにコピーする必要があります。必ず元のテーマと同じファイル構造を使用するようにしてください。次に、上記の手順に従って子テーマを有効化し、親テーマをテストして更新します。

上記が完了したら(ストア型のサイトであれば特に)より綿密なテストを行いましょう。サイトを一般的にテスト(上記を参照)するだけでなく、ストアの動作をテストする必要があります。メインショップページ、商品カテゴリのページ、個々の商品ページ、そしてチェックアウトプロセスをすべてテストします。本番サイトに変更を反映する前に、サイトが正常に機能しているかどうか確認しましょう。

まとめ

これで、WordPressのテーマを最新の状態にしておくことが重要である理由と、最も重要なことに、さまざまな状況の中でテーマを更新する方法がわかりました。最新版のテーマはより安全で、WordPressのコアと互換性がある他、新機能の恩恵も受けます。

ただし、適切に更新することが重要です。更新を実行する前に必ずバックアップを作成し(Kinstaをご利用の場合は、このことを心配する必要はありません)、最初にステージングサイトでテストし、次に変更を本番サイトに公開します。

テーマに変更を加えた場合、追加の作業が発生します。最初に子テーマを作成し、変更内容または今後必要になる変更内容をその子テーマに追加します。これにより、親テーマを更新しても変更内容が失われることはありません。

Rachel McCollin

Rachel McCollin has been helping people build websites with WordPress since 2010. She's a huge fan of self-hosted WordPress and wants to help as many people as possible create an awesome website with it.