作ってもらった会社に連絡しても返事が来ない。担当が何度も替わって、いつの間にか窓口が消えた。手元にあるのはWordPressの管理画面のIDとパスワードだけで、サーバーがどこの何なのかも分からない。この状態からの相談は珍しくありません。実際、「自分たちで触れるように作ってほしいと何度も頼んだのに、言い訳ばかりで作ってもらえなかった」と言って関係を切った、という経緯で持ち込まれることもあります。引き継ぎで最初にやるのは修正ではなく、何が分かっていないのかを分類することです。順番を間違えると、直せるはずの不具合に何日も溶かします。
分からないものは3層に分かれる
引き継ぎ時に欠けている情報は、性質の違う3つが混ざっています。1つ目は権限で、サーバー・ドメイン・データベース・WordPressそれぞれに誰がアクセスできるかという話です。2つ目は構成で、どのサーバーのどこにファイルがあり、テーマとプラグインが何で、PHPのバージョンがいくつかという話。3つ目が改造箇所で、標準のWordPressから何をどう変えてあるかという話です。
厄介なのは3つ目です。1つ目と2つ目は聞けば分かる、あるいは調べれば必ず分かりますが、改造箇所だけは前任者しか知りません。しかも、その改造がテーマの中にあるのか、プラグインなのか、サーバー側の設定なのかで、直す難易度が10倍変わります。まずは1と2を確実に埋めて、3に使える時間を確保するのが引き継ぎの基本の流れです。
| 層 | 集めるもの | 手に入らないときの代替 | 埋めずに進めた場合 |
|---|---|---|---|
| 権限 | サーバーの管理画面、FTPまたはSSH、データベース、ドメインの管理元、WordPressの管理者 | サーバー管理画面が生きていれば、そこからFTPユーザーを自分で追加できる | 白画面になった瞬間に戻す手段がなくなる |
| 構成 | 本番・テスト・旧環境のURL一覧、テーマ名、プラグイン一覧、PHPのバージョン | 管理画面のサイトヘルス、ソースのパスから逆算 | 直したつもりが別環境を見ていた、が起きる |
| 改造箇所 | 子テーマの有無、独自プラグイン、functions.php の追記、管理画面外に置かれたCSS・JS | ファイルの更新日時、コード内のコメント、公式配布版との差分 | 更新のたびに壊れる原因が分からないままになる |
URLの一覧を最初に出してもらう
制作が途中で止まった状態を引き継いだ案件では、ドメインが4系統に分散していました。本番、テスト、旧サイト、それとは別に検証用。要件を確定させるだけで数日かかっています。相談を受けた側から見ると、URLが1本足りないだけで「直したのに反映されない」という不毛なやり取りが往復します。連絡が取れる相手が誰もいない場合でも、ブラウザの履歴、過去のメール、請求書の記載から掘り起こす価値があります。
WordPressの場所を動かした形跡がある場合、URLやディレクトリの移動後にパーマリンクを再保存していないと、トップページ以外が全滅します。.htaccess の再生成がされていないだけなので、設定画面のパーマリンクを開いて保存し直すだけで直ります。引き継ぎ直後に「なぜか個別ページだけ404」という症状が出たら、真っ先にここを見てください。
手元にあるアクセス手段が、できることを決める
権限の揃い方で受けられる作業の範囲が変わります。ここを曖昧にしたまま着手すると、事故ったときに戻せません。
| 手元にあるもの | できること | やってはいけないこと |
|---|---|---|
| WordPressの管理画面だけ | プラグイン一覧・テーマ名・設定値の確認、投稿の修正、調査と原因の特定 | テーマファイルエディタでのPHP編集。保存した瞬間に白画面になると、管理画面ごと開けなくなる |
| 管理画面+FTP | ファイルの取得と差し替え、子テーマの作成、欠落ファイルの補完 | バックアップを取らないままの上書き |
| 管理画面+SSH+データベース | 差分の抽出、文字コードレベルの調査、丸ごとの複製と検証 | 本番で直接試すこと |
FTPもSSHも渡されない案件は、編集を伴う作業を請けずに調査だけで区切る、という線引きをしています。管理画面のファイルエディタだけでサーバーサイドのコードを触るのは、復旧手段のない綱渡りだからです。逆に言えば、サーバーの管理画面さえ生きていれば、そこからFTPユーザーを自分で追加して進められます。前任者のFTP情報が出てこなくても、そこで詰まる必要はありません。
テーマを疑う順番
引き継いだサイトの「表示がおかしい」は、コードを読む前に見るべきものがあります。テーマの引き継ぎや移行を経たサイトでは、ファイルが物理的に欠けていることが実際にあります。独自テーマのサイトで表示が崩れていた案件は、loop-index.php が丸ごと存在しないという原因でした。ファイル一覧を眺めるだけで気づける類のもので、コードを読み始める前に search.php、404.php、archive.php といった想定されるテンプレートが揃っているかを確認し、各ページを実際に開いて回るほうが早く終わります。
次に、崩れているのが全ページか特定のページだけかを見ます。全ページならテーマ側、特定のページだけならコンテンツ側の可能性が高くなります。実際に、サイドバーの崩れの原因が記事本文のタグの閉じ忘れだった案件があります。この切り分けを飛ばすと、テーマを何時間触っても直りません。
そして、そのテーマが wp_head() を呼んでいるかを確認してください。呼んでいないテーマは、子テーマを作っても親テーマのCSSやJSを継承できません。この場合は header.php や front-page.php を子テーマ側にコピーして上書きする形になり、当然そのぶん工数が乗ります。カスタマイズの見積りが想像より高くなる理由の多くはここです。子テーマの前提そのものはWordPress子テーマの作り方と、親テーマ更新に備えた運用にまとめています。
もう1つよくあるのが、CSSや画像がWordPressのディレクトリの外に置かれている構成です。/home/アカウント名/css や /js、/images に実体があり、テーマから直接読み込んでいる。管理画面からは一切差し替えられないので、サイト所有者が自分で触れない根本原因になります。発見したら、どのパスから何を読んでいるかを具体的に書き出して共有してください。
複製したファイルだけ動かない、の正体
既存のテンプレートをコピーして作ったページだけが表示されない、という相談を受けたことがあります。パーミッションの表示が他のファイルと違って見える、という報告もあり、そちらに引きずられましたが、鍵マークは所有者の違いを示しているだけで原因とは限りません。目立つ差異が原因とは限らない、というのがこの案件の教訓です。
この症状で先に疑うべきは不可視文字です。NBSP(U+00A0)は見た目が半角スペースと区別できず、テキストエディタでも見つかりません。管理画面のテーマファイルエディタやブラウザ経由でコードをコピーして貼ると混入します。動く版と動かない版の両方が手元にあるなら、まず差分を取ってください。
<code>grep -nP 'xc2xa0' template.php # NBSP grep -nP 'xefxbbxbf' template.php # BOM cat -A template.php diff normal.php broken.php</code>
読み込まれないパターンとしては、get_template_part() の指定違いもあります。get_template_part('/templates/ir/ir', $slug) は templates/ir/ir-{$slug}.php を探しに行くので、ファイル名のハイフンとアンダースコアが1文字違うだけで読み込まれません。ファイルが確かに存在するのに反映されないときは、期待されているファイル名を $slug から逆算して突き合わせます。またPHPファイルをFTPで落として編集する際は、余分な改行や違う文字コードで保存すると、それだけで動かなくなります。
触る前に止めておくこと
調査と改修を進めている最中にプラグインが自動更新されると、自分の作業と無関係にデザインが崩れます。実際に改修中のCSSが更新で壊れた案件があり、原因の切り分けが一段面倒になりました。作業期間中は自動更新を止めるか、少なくとも更新が走ったかどうかを確認できる状態にしておいてください。
もう1つ、調査のために設定した一時的な状態は必ず戻します。テスト用にユーザーをロックしたまま引き渡してしまい、依頼者の最初の確認が失敗したことがあります。作業用の設定を戻したか、非公開にしたページを戻したか、認証をかけたままにしていないか。この3点は引き渡し前の定型確認に入れておく価値があります。使わなくなった機能を止めるときの順序は使わなくなった機能やページを止めるときの手順と、消す前の確認にまとめました。
どこまでを引き継ぎ、どこから作り直すか
判断の分かれ目は、改造の量ではなく「改造がどこにあるか分かるか」です。子テーマに閉じているなら、親テーマに切り替えるだけで元の状態に戻せます。検証環境を用意する予算がない相談でも、この安全弁があるだけで踏み込めます。一方、管理外のディレクトリからアセットを読み、functions.php に出所不明の関数が積み上がり、リダイレクトがプラグインとPHP関数の両方で二重にかかっているような状態だと、1つ直すたびに次が出ます。
複数のリダイレクトが絡む不具合は、プラグイン同士の相性と、独自に書かれたPHP関数の組み合わせが定番の原因です。この2つを同時に疑うところから始めてください。どこまでを継続的に見てもらうかの線引きについては、保守契約でどこまで頼めるのか、範囲の線引きをどう決めるかで整理しています。
よくある質問
制作会社に連絡がつかないまま、サイトを触っても問題ありませんか
サーバー・ドメイン・WordPressの契約者と管理権限が自社にあるなら、技術的にも契約上も進められます。確認すべきは、ドメインの管理元が制作会社名義になっていないか、サーバーの契約者が誰かの2点です。ここが他社名義だと、更新が止まった時点でサイトごと失います。改修より先にこの移管を済ませてください。
調査だけを頼むことはできますか
できます。FTPやSSHが用意できない状況では、むしろ調査に限定したほうが安全です。管理画面からの調査でも、テーマ名、プラグイン構成、独自実装の位置、どこが直せてどこが直せないかまでは特定できます。そのうえで、編集を伴う作業は権限が揃ってから着手する形になります。
引き継ぎの調査にはどのくらいかかりますか
状況によります。子テーマ1つに改造がまとまっていれば半日で全体像が見えますが、環境が複数に分散し、独自テーブルや外部連携が絡むと数日単位になります。最初に本番・テスト・旧環境のURLと権限が揃っているかどうかで、期間はほぼ決まります。
スマートフォンだけ表示が崩れると言われました。端末固有の問題はありますか
あります。iOSのSafariでだけ再現するCSSの不具合は実在し、他の端末で確認しても再現しないことがあります。ある案件では、複数の端末で問題が出なかったにもかかわらず依頼者の環境では崩れており、3日かけて最終的にCSSの修正で解決しました。キャッシュのせいだと片付けず、まず該当端末での画面と、どのブラウザかを共有してもらってください。
