WordPressサイトの開発・発注の心得
サイトが正常に動くことは最低条件
WordPress開発におけるプロとアマチュアの違いは単に「コードが書けるかどうか」ではありません。サイトが正常に動くことは開発における最低条件です。プロのエンジニアは、開発費用に見合う効果が得られるか、公開後も安全に運用できるか、将来の修正や機能追加に対応できるかといった点まで考慮して設計を行います。また、セキュリティ上の問題や担当者の運用負荷、事業の目的に合った構成といった観点も欠かせません。
AIを使えば、誰でもプロになれるわけではない
近年はAIを使ってWordPressのコードを生成することも一般的になりました。AIに指示すれば、カスタム投稿や管理画面の機能など、さまざまな機能を短時間で作成できます。ただしAIが出力したコードが、そのサイトに適しているとは限りません。
セキュリティ上の問題が含まれていたり、既存のテーマやプラグインと競合したり、将来のWordPress更新で動かなくなる可能性もあります。
プロにとってAIはコードの自動作業機ではなく開発効率化のための補助ツールです。開発を進める際には、サイト全体の構成や開発方針をあらかじめ共有し、各ファイルの役割や開発時に使用するコマンド、変更してよい範囲などについても事前に整理して伝えます。こうしたルール決めがAIの作業基盤を強固にし、そこに技能が表出します。
重要なのはAIがコードを書いたかどうかではなく、そのコードを人間が確認し適切に修正できる体制があるかどうかです。
制作会社は「何でもできます」だけで選ばない
WordPress制作会社を選ぶ際は、対応できる機能の多さだけでなく、どのような課題を解決できるかを見ることが大切です。
例えば、問い合わせ数や採用応募の増加、更新作業の効率化、表示速度の改善、セキュリティ事故の削減、ECサイトの売上向上など、具体的な成果につながった実績があるかどうかは重要な判断材料になります。
「何でもできます」という会社よりも、自社の目的に近い分野で具体的な実績を持つ会社のほうが適切な提案を受けやすくなります。また、契約内容、修正対応、保守範囲、障害時の連絡方法などが明確になっているかも重要な視点といえます。
WordPressサイト設計の心得
テーマと機能を分けて設計する
WordPressではサイトの見た目を主にテーマが担当し、投稿機能や独自の処理はプラグインが担当します。この役割を分ける考え方が設計能力です。例えば、施工実績、商品情報、スタッフ紹介などのカスタム投稿タイプをテーマの中に直接書いた場合、テーマを変更したときに管理画面から投稿機能が消えてしまうことがあります。
投稿データ自体はデータベースに残っていても、表示や編集ができなくなれば、実際の運用では大きな問題です。
そのため、テーマを変更しても残す必要がある機能は、独自プラグインなどに分けて実装する方法が適しています。
functions.phpにすべてを書かない
WordPressではテーマ内のfunctions.phpにさまざまな処理を追加できます。しかし、設定、CSSやJavaScriptの読み込み、カスタム投稿、フォーム処理、外部API連携などをすべて一つのファイルに書くと管理が難しくなります。
設定やCSS・JavaScriptの読み込み、カスタム投稿の設定、管理画面のカスタマイズ、フォームやAjaxの処理、外部APIとの連携、セキュリティ対策などをすべて一つのファイルに記述するのは逆に運用負荷をあげてしまうことがあり、役割ごとに適切にファイルを分割して管理するのが一般的です。
機能ごとに整理しておくことで、不具合が発生した際に原因箇所を特定しやすくなり、修正による他の機能への影響も抑えやすくなります。
WordPressのフックを正しく使う
WordPressでは、フックという仕組みを使って処理を追加します。主なフックにはアクションフックとフィルターフックがあります。
アクションフックは、特定のタイミングで新しい処理を実行するために使います。例えば、CSSやJavaScriptの読み込み、投稿保存時の処理、管理画面へのメニュー追加、メール送信などが該当します。
一方、フィルターフックは、WordPressが扱うデータを途中で受け取り、変更して返すために使います。記事本文やタイトルの書き換え、抜粋文の調整、出力されるHTMLの変更などが代表的な利用例です。
両者を正しく使い分けることで、WordPress本体を直接変更することなく安全に機能を追加できるようになります。
親テーマを直接変更しない
市販テーマや無料テーマを使用する場合、親テーマのファイルを直接変更するのは避けたほうが安全です。
テーマが更新されると変更内容が上書きされる可能性があるためです。カスタマイズが必要な場合は一般的に子テーマを作成します。ただし変更内容が非常に多い場合や独自機能が中心となる場合は、子テーマではなく独自テーマを作ったほうが管理しやすいことがあります。
弊社のWordPress開発チームは独自テーマの実装の方が得意です。
コードの書き方に一貫性を持たせる
複複数人で開発する場合、開発者ごとにコードの書き方が異なると、確認や修正に時間がかかります。そのため、WordPressでは推奨されているコーディング規約を利用し、インデントや変数名・関数名の付け方、空白や改行の扱い、コメントの記述方法、データベース処理や出力時のセキュリティ対策などを統一します。
また、PHPCSなどの静的解析ツールを利用することで、ルール違反や問題のある記述を自動的に検出できます。さらにPHPCBFを使えば、一部のコーディングルールについては自動的に修正することも可能です。
こうした仕組みを導入することで、担当者個人の経験や判断だけに依存せず、チーム全体で一定の品質を維持しやすくなります。
本番サーバーで直接編集しない
WordPress管理画面のテーマエディターやFTPを使って、本番サーバー上のPHPファイルを直接変更する方法には大きな危険があります。記述を一文字間違えただけでも、サイト全体が表示されなくなることがあるためです。
そのため、プロの開発では、まずパソコン上の開発環境で修正を行い、十分に動作確認をしたうえで変更履歴をGitに保存します。その後、テスト環境へ反映して問題がないことを確認し、最終的に本番環境へ反映するという手順を取るのが一般的です。
変更履歴をGitで管理しておけば、誰が何を変更したのかを確認できるだけでなく、不具合が発生した際にも以前の状態へ戻しやすくなります。
開発環境を本番環境に近づける
開発用の環境と本番サーバーの環境が大きく異なると、開発環境では動いていたのに本番では動かないという問題が起きます。
PHP、WordPress、データベース、使用しているプラグイン、サーバーの設定などは特に注意が必要です。DDEVやDockerなどを利用すると、チーム内で開発環境をそろえやすくなります。すべての案件で高度な環境が必要なわけではありませんが、規模が大きいサイトや長期運用するシステムでは有効です。
CSSやJavaScriptも管理する
大規模なテーマ開発では、CSSやJavaScriptをそのまま編集するだけでなく、Viteなどのビルドツールを使用することがあります。ビルドツールを使うと、CSSやJavaScriptの圧縮やファイルの結合や分割、ブラウザキャッシュ対策、使用していないコードの整理などを自動化できます。
ただし、小規模なサイトに複雑な開発環境を導入すると、かえって管理しづらくなる場合があります。技術的に高度であることよりも、サイトの規模や運用体制に合っていることが重要です。
WordPressサイトのセキュリティの心得
セキュリティはプラグインを入れるだけでは不十分
WordPressのセキュリティ対策というと、セキュリティプラグインの導入が最初に挙げられます。
しかし、プラグインを入れただけで安全になるわけではありません。むしろ、似た機能のプラグインを複数入れることで競合や表示速度低下の原因になることがあります。必要なのは、複数の対策を組み合わせることです。例えば、ログインURLの変更は、不正アクセスを減らす補助策にはなりますが、それだけで安全になるわけではなく、二要素認証やアクセス制限などと組み合わせる必要があります。脆弱性が問題になりやすいWordPressこそ、エンジニアの知見が問われます。
入力されたデータをそのまま信用しない
問い合わせフォームや検索フォーム、管理画面などから送られてくるデータは、そのまま処理してはいけません。
WordPress開発では、主に次の三つの処理を行います。
| バリデーション | 入力された内容が、想定した形式になっているか確認します。例えば、メールアドレス欄に正しいメールアドレスが入力されているか、数値欄に数字が入力されているかを確認します。 |
| サニタイズ | 保存前に、不要なタグや危険な文字列を取り除きます。例えば、通常の文字入力にはsanitize_text_field()などを使用します。 |
| エスケープ | データを画面に表示する直前に、安全な形式へ変換します。HTML本文、HTML属性、URL、テキストエリアなど、出力する場所に応じて適切な関数を使い分けます。基本となる考え方は、入力時に確認し、保存時に整え、出力時に安全な形へ変換することです。 |
フォームにはNonceを使用する
WordPressのフォームや管理画面処理では、第三者が利用者になりすまして操作するCSRFという攻撃への対策が必要です。WordPressでは、Nonceと呼ばれる確認用の値をフォームに追加できます。送信されたNonceが存在するか、正しい値かをサーバー側で確認し、不正な場合は処理を中止します。ただし、Nonceは利用者の権限を確認するものではありません。
管理者だけが実行できる処理では、Nonceの確認に加えて、current_user_can()などによる権限確認も必要です。
問題が起きた後の対応も準備する
セキュリティ対策では、侵入を完全に防ぐことだけでなく、問題が発生した後にどのように対応するかも重要です。サイトが改ざんされた場合は、不審なファイルだけを削除するのではなく、まず被害の拡大を防ぎ、サイトやログを保全したうえで侵入経路を調査します。その後、不正なファイルやアカウントを特定し、安全なバックアップから復旧を行います。
復旧後はWordPress本体やテーマ、プラグインを更新し、パスワードや認証キーを変更したうえで再発防止策を実施します。また、一定期間は監視を続けることも重要です。
バックアップがあっても、侵入後に取得したデータには不正なファイルが含まれている可能性があります。そのため、複数世代のバックアップを別の安全な場所に保管しておくことが望まれます。
WordPressサイトのパフォーマンスの心得
表示速度はプラグインの数だけでは決まらない
WordPressでは、プラグインが多いと表示速度が低下すると言われます。しかし、実際には個数だけで判断することはできません。重要なのは、不要な処理が実行されていないか、データベースへの負荷が大きすぎないか、外部サービスとの通信が過剰ではないかといった点です。また、CSSやJavaScriptの読み込み量、画像の最適化状況、キャッシュ設定、サーバー性能なども表示速度に大きく影響します。
プラグインを減らすこと自体が目的ではなく、必要な機能を安全かつ効率的な方法で実現することが重要です。。
重い処理にはキャッシュを使う
同じデータを何度もデータベースから取得すると、サーバーに負荷がかかります。そこで、一度取得した結果を一定時間保存し、再利用するキャッシュを使用します。WordPressには、Transients APIという一時保存の仕組みがあります。
例えば、外部APIから取得したデータや、複雑な検索結果を一定時間保存しておけば、ページを表示するたびに重い処理を行う必要がありません。
ただし、キャッシュは保存するだけでは不十分です。元の投稿が更新されたときに古いキャッシュを削除するなど、更新の仕組みも必要です。
アクセスが非常に多いサイトでは、複数の処理が同時にキャッシュを作り直して負荷が急増することもあります。このような場合は、Redisなどのオブジェクトキャッシュや、同時実行を防ぐ仕組みを検討します。
WordPressサイトの運用設計の心得
編集しやすさと自由度のバランスを考える
WordPressには、Elementorなどのページビルダーと、標準のブロックエディターがあります。ページビルダーは、専門知識がなくても自由にレイアウトを作りやすい点が利点です。一方で、使い方によってはHTML構造が複雑になり、表示速度や保守性に影響することがあります。
ブロックエディターはWordPress本体に組み込まれているため、将来の互換性や軽さの面で有利です。
ただし、ブロックエディターを使えば自動的に高速でアクセシブルなサイトになるわけではありません。作成するブロックやテーマの品質によって結果は変わります。実際の制作では、担当者が編集してよい部分と、デザインを固定する部分を分けることが重要です。
何でも自由に変更できる管理画面は便利に見えますが、時間がたつにつれて余白、色、文字サイズなどがばらばらになり、サイト全体の統一感を失うことがあります。適度な制限を設けることで、更新しやすさとデザイン品質を両立できます。
既製テーマと独自テーマは目的で選ぶ
既製テーマを利用するか独自テーマを開発するかは、案件の目的によって判断します。既製テーマは初期費用を抑えやすく、短期間で公開しやすいという利点があります。一方で、不要な機能が含まれていたり、カスタマイズの自由度に限界があったりする場合もあります。
独自テーマは必要な機能だけを実装でき、ブランドや業務に合わせた設計が可能です。しかし、開発費用や保守費用は高くなりやすく、制作会社の技術力にも大きく左右されます。
そのため、小規模なコーポレートサイトであれば既製テーマの活用が合理的な場合もありますし、会員機能やEC機能、多言語対応など複雑な要件がある場合は独自開発が適していることもあります。。
WordPress開発で本当に重要なこと
WordPress開発の品質は、見た目や機能の多さだけでは判断できません。
事業の目的に合っていること、安全に運用できること、更新や改修がしやすいこと、将来の変更に対応できることが重要です。また、表示速度や障害発生時の復旧体制、特定の担当者だけに依存しない運用体制、設計や修正履歴が適切に管理されていることも欠かせません。
プロのWordPress開発に必要なのは難しい技術を数多く使うことではありません。必要な技術を適切に選び、不要な複雑さを避けながら長期的に安定運用できる状態を作ることです。サイトは公開して終わりではなく、運用や改善を続けながら事業とともに成長していきます。
そのため、目の前の実装だけでなく、数年後の管理や保守まで見据えた設計が求められます。運用、更新、改善、保守を重ねながら、事業とともに育てていく視点が問われています。