WordPressのカスタマイズ|コアを触ると更新できなくなる
PHPなので何でもできます。だからこそ、触ってはいけない場所を知っておく必要があります。
WordPress は PHP で動いているため、技術的にはほぼ何でもできます。 ソースコードがすべて公開されており、書き換えようと思えば書き換えられます。
問題は、触ってよい場所と、触ってはいけない場所があることです。 ここを分かっていない会社に頼むと、数年後に更新できないサイトが残ります。
触ってよい場所・いけない場所
| 場所 | 可否 | 理由 |
|---|---|---|
| 自作テーマ・子テーマ | 触ってよい | 更新で上書きされない |
| 自作プラグイン | 触ってよい | 同上 |
| フック経由の処理追加 | 推奨 | 本体を変えずに動作を変えられる |
| 親テーマ(配布テーマ) | 触らない | テーマ更新で消える |
| 配布プラグイン | 触らない | プラグイン更新で消える |
| wp-includes / wp-admin | 絶対に触らない | WordPress更新で消える。セキュリティ更新も当てられなくなる |
判断基準は単純で、「更新で上書きされる場所かどうか」だけです。 上書きされる場所に手を入れると、更新のたびに改変が消えます。
コアを書き換えると何が起きるか
| 段階 | 起きること |
|---|---|
| 1. 改変時 | 要望どおりに動く。この時点では問題が見えない |
| 2. 最初の更新 | 改変が上書きされて消える。機能が壊れる |
| 3. 対応 | 「更新しないでください」と言われる |
| 4. 数か月後 | 脆弱性が公表されるが、更新できないため対応できない |
| 5. 数年後 | PHPのバージョン更新にも追従できず、サーバー移行もできなくなる |
いちばん厄介なのは、問題が出るまでに時間がかかることです。 公開直後は正常に動くため、発注側は気づけません。 数年たって「更新できないので作り直しが必要です」と言われて初めて分かります。
そしてこの状態になると、他社に引き継ぐこともできません。 引き継いだ会社は、どこが改変されているか分からないまま保守することになるためです。
フックとは何か
WordPress には、本体を書き換えずに動作を変えるための仕組みが用意されています。 これを「フック」と呼びます。
| 種類 | 役割 | 例 |
|---|---|---|
| アクションフック | 特定のタイミングで処理を追加する | 記事の保存後に通知メールを送る |
| フィルターフック | 出力される値を書き換える | 記事タイトルの末尾に文字を足す |
本体のコードには一切手を触れずに、動作だけを変えられます。 更新しても自分で書いた処理は残るため、WordPress を最新に保ったまま運用できます。
フックは WordPress 全体で数千用意されており、 管理画面の項目追加、記事一覧の並び替え、メール送信の内容変更、 検索対象の変更など、通常必要になる大半のことはこの範囲で実現できます。
フックで足りないときの選択肢
まれに、フックが用意されていない箇所を変えたくなることがあります。 そのときも、コアを書き換える前に次を検討してください。
- 別の実現方法を探す:同じ結果を、フックのある別の箇所から出せないか
- 要件を調整する:得られる効果と、失う更新性を天秤にかける
- プラグインは fork する:配布プラグインを直接直さず、複製して自社管理にする
- 子テーマで上書きする:テーマのテンプレートは子テーマ側に同名ファイルを置けば差し替えられる
「どうしてもコアを触るしかない」という場面は、実務ではほとんどありません。 そう言われた場合は、なぜフックで実現できないのかを説明してもらってください。
発注時・引き継ぎ時に確認すること
| 場面 | 確認すること |
|---|---|
| 新規発注 | カスタマイズはフックの範囲で行うか。コアやプラグインを直接触らないか |
| 見積もり時 | 「更新できなくなる実装は含まれていないか」を明記してもらう |
| 納品時 | どのファイルを追加・変更したかの一覧をもらう |
| 引き継ぎ時 | コアに改変がないか、公式版との差分を確認してもらう |
| 運用中 | 更新を止めていないか。止めているならその理由 |
「WordPress の更新はしないでください」と言われたら、理由を必ず確認してください。 正当な理由(大規模サイトで検証してから適用する等)もありますが、 コア改変が原因の場合は、いずれ作り直しになります。
まとめ
WordPress のカスタマイズは、自由度が高いことがそのままリスクになります。 何でもできるがゆえに、後先を考えない実装も通ってしまいます。
発注側が技術的な良し悪しを判断するのは難しいですが、 「更新し続けられる作りにしてください」という一言は伝えられます。 この要件を最初に出しておけば、まっとうな会社であれば適切な作り方を選びます。
よくある質問
WordPress はどこまでカスタマイズできますか?
PHP で動いているため、技術的にはほぼ何でもできます。ただし「できる」と「やってよい」は別です。コア本体やプラグインを直接書き換えると、更新のたびに改変が消えます。フックという仕組みの範囲で行うのが原則です。
フックとは何ですか?
WordPress があらかじめ用意している「差し込み口」です。処理の途中で自分のコードを実行させるアクションフックと、出力される値を書き換えるフィルターフックの2種類があります。これを使えば、本体を触らずに動作を変えられます。
コアを書き換えるとどうなりますか?
更新すると改変が上書きされて消えます。消えるのを嫌って更新を止めると、今度はセキュリティ修正が当たらなくなります。どちらを選んでも問題が起きる状態になるため、避けるべきです。
既存サイトがコア改変されているか調べられますか?
調べられます。公式サイトから同じバージョンをダウンロードして、ファイルを比較すれば差分が分かります。引き継ぎのときは、この確認を制作会社に依頼してください。
掲載している金額は、一般的な発注で見かける水準をもとにした目安です。 実際の費用は要件・地域・体制によって変わります。必ず複数社から見積もりを取り、 「何が含まれていて、何が含まれていないか」を比べたうえでご判断ください。