オリジナルWordPressテーマの修正・バックアップ、コンテンツをDBから取得(DBの置換には「Search Replace DB」)

WordPressのオリジナルテーマを外注して納品してもらった場合でも、ちょっとしたテキスト修正やデザイン調整など軽微な変更は必要になることがあります。
本記事では、管理画面での一般的な修正方法と、万が一に備えてのバックアップ方法についてまとめました。

テーマエディターでの軽微な修正

WordPress管理画面の「外観 > テーマファイルエディター」から直接テーマファイルを編集することも可能です。
ただし、誤って重要なコードを消してしまうリスクや、運用中サイトが即時に壊れてしまう可能性があるため、以下の点に注意してください。

  • 必ずバックアップを取得してから編集
  • PHPファイル編集の際はテスト環境で確認後に本番に反映する

【おすすめ】子テーマを使うメリット

外注テーマがアップデートで修正される可能性がある場合、子テーマを作成してカスタマイズを行うのがおすすめです。
子テーマを利用すると、親テーマ(オリジナルテーマ)のアップデートがあっても、子テーマ部分の修正は上書きされずに済むため、作業の手戻りを減らせます。

子テーマ作成の流れ(簡易版):

  1. wp-content/themes 配下に、子テーマ用フォルダを新規作成 (例: originaltheme-child)
  2. style.cssfunctions.php を設置し、style.css の先頭に以下を追記
  3. functions.php で親テーマのスタイルを読み込む記述を行う
  4. WordPress管理画面から「外観」→「テーマ」で子テーマを有効化
/*
Theme Name: Original Theme Child
Template: originaltheme
*/

バックアップ方法

WordPressサイトでは、万が一に備えて定期的なバックアップが重要です。以下は代表的な方法になります。

プラグインを使ったバックアップ

プラグインを利用することで、自動バックアップや復元がGUI操作で簡単に行えるようになります。
代表的なプラグインと機能の比較は下記の通りです。

プラグイン名無料/有料特徴復元方法
UpdraftPlus無料 / 有料手動&自動バックアップ対応、クラウド連携可ダッシュボードから可
BackWPup無料 / 有料定期実行スケジュール設定が豊富手動インポートが必要
All-in-One WP Migration無料 / 有料サイト移行もできるバックアップ機能プラグインから一括復元

サーバーから手動でバックアップを取得する

サーバーコントロールパネルやFTPソフトを使って手動でファイルとデータベースをダウンロードする方法です。

  1. FTPでファイルをダウンロード
    • WordPressフォルダ全体(wp-content など含む)
  2. phpMyAdminなどでデータベースをエクスポート
    • .sql ファイルをローカルにダウンロード

メリット

  • プラグインに依存しないためトラブル時に確実性が高い
  • より細かい手動制御ができる

デメリット

  • 作業手順がやや煩雑
  • 自動スケジュールが無いので定期的な手動作業が必要

Gitなどのバージョン管理システムの活用

テーマファイルやプラグインコードの変更が多い場合には、Gitなどを使ってバージョン管理しておくと便利です。

  • 変更履歴を明確に把握できる
  • ローカル環境でブランチを分けて開発・テストができる
  • 復元ポイントが細かく残る

修正から公開までのフロー例

  1. バックアップ取得: 現状の動作しているサイト状態を念のため保存
  2. テスト環境で修正: ローカルやステージング環境でテーマ・プラグインなどを編集
  3. 動作確認: バグや不具合がないかチェック
  4. 本番環境へ反映: 変更を本番に適用
  5. 再度バックアップ: 修正後の最新状態も保存

ローカル開発環境構築手順

前提:オリジナルテーマはGithubで管理

本番:さくらレンタルサーバー

WordPress開発環境をDockerで構築

WordPressの本番環境からローカル環境へコンテンツを同期する方法

WordPressデータベース同期方法の比較

【プラグイン】All-in-One WP Migration・サイズ制限があり(無料版)、小規模サイト向け
・ユーザーデータも含めて移行される
phpMyAdmin・MySQLをブラウザ上で管理するためのツール
WP CLI・CLI(コマンドラインインターフェース)

本番サイトのDBをエクスポート

エクスポートとはデータベースの中身を「SQLファイル」として保存することです。

本番のさくらインターネットのレンタルサーバーにssh接続します

wp-cliを使うには、WordPressのルートディレクトリで実行する必要があります。

$ wp db size

$ wp db tables
wp_hello_actionscheduler_actions
wp_hello_actionscheduler_claims 
wp_hello_actionscheduler_groups 
wp_hello_actionscheduler_logs   
wp_hello_commentmeta
wp_hello_comments
wp_hello_links
wp_hello_options
wp_hello_postmeta
wp_hello_posts
wp_hello_term_relationships     
wp_hello_term_taxonomy
wp_hello_termmeta
wp_hello_terms
wp_hello_usermeta
wp_hello_users

ホームディレクトリ(公開ディレクトリでない)場所にエクスポート

# ホームディレクトリに移動
cd ~

# バックアップ用ディレクトリ作成
mkdir db_backup
[xx@wwwxx ~/www/wp]$ wp db export --tables=wp_hello_posts,wp_hello_postmeta,wp_hello_terms,wp_hello_term_taxonomy,wp_hello_term_relationships,wp_hello_options ~/db_backup/content_backup.sql

Search Replace DB

WordPressのデータベースを簡単に検索・置換するためのPHPスクリプトです。WordPressサイトを移行する際や、URLやパスを変更する必要がある場合に非常に便利です。

使用方法

移動元WordPressの準備

レンタルサーバの管理画面からphpMyAdminを開きます

(ログイン情報wp-config.phpに記載されています)

使用しているDBを選択します

wp~で始まるテーブル名の一覧が表示されている状態を確認(テーブル名がwp4b164fで始まっているのは、WordPressインストール時に設定されたテーブル接頭辞($table_prefix)が適用されてるためです)

phpMyAdminの画面上部メニューにある「エクスポート」を選択します

  • 簡易 – 最小限のオプションだけ表示
    → 初心者向けで必要十分な設定がデフォルトで適用されます。特別な設定やカスタマイズが必要ない場合、この方法を選択してください。
  • なし
    これを選択してください。
    WordPressのデータベースは通常utf8mb4utf8エンコーディングを使用しており、エンコーディングを変更すると文字化けの原因になる可能性があります。

移動元のWordPressフォルダ、ファイル群をダウンロードし移動先にアップロード

移動先にアップロードする前にwp-config.phpのダウンロードを忘れずに

(注意)db接続情報まで書き換えてしまうと接続エラーになります

Search Replace DBダウンロード方法

https://interconnectit.com/search-and-replace-for-wordpress-databases

上記サイトよりフォームを送信すると、しばらくするとメールが送られてきます。

メールにZipファイルのダウンロードURLが記載されてます

Githubからダウンロードも可能

https://github.com/interconnectit/Search-Replace-DB

アップロード

Search Replace DB をWordPress移行先に配置

WordPressをインストールしているディレクトリに(wp-config.phpと同じ階層に配置)

検索と置換を設定

ブラウザでアクセスすると下記が表示されます(ディレクトリ名が長いので変更したほうが便利)

DB接続情報を「wp-config.php」より入力

DB_HOSTの値にポート番号が含まれていないため、デフォルトのMySQLポート番号(3306)が使用されます。

– phpMyAdminのDBインポートは圧縮しないとエラーがでる

ドライラン(Dry Run)

実行前に「Dry Run」モードで変更内容を確認します。

実行

問題がなければ検索・置換を実行します。

https://internet.mints.ne.jp

– DB置換後、移動元のURLに遷移する場合はキャッシュが原因の場合があります、シークレットモードで確認

Dockerコンテナで開発している場合の注意

– search db repはDockerfileでphpのバージョンを7.4に変更する必要がある?

FROM wordpress:php7.4-apache

– db情報はdocker-compose.ymlの内容を使用※wp-config.phpの内容は使用しない

WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress

参考サイト

 WordPress Search Replace DB の使い方
https://www.webdesignleaves.com/pr/wp/wp_search_replace_db.html