新世代レンタルサーバーをいち早く体験!
Oneレンタルサーバーβ版が【1年間無料】詳細へ

WordPressのPHP編集方法を初心者向けに解説【安全なカスタマイズ術】

WordPress

WordPressのPHP編集方法を初心者向けに解説

WordPressで「デザインをもっと自由に変えたい」「機能を自分好みに追加したい」と考えたことはありませんか?
そのカギを握るのが、WordPressの土台となるプログラミング言語・PHP(ピー・エイチ・ピー)です。

PHPを活用すれば、テーマやプラグインの動作を自分好みに調整したり、表示形式を柔軟にカスタマイズすることができます。
PHPの編集には適切な知識と、信頼できるサーバー環境が必要不可欠です。

そこでおすすめなのが、月額390円から利用できるコアサーバーのV2プランです。
PHP 8.0以上に対応し、WordPressの自動インストール機能やドメイン永久無料特典など、お得で初心者にもやさしい機能が充実しています。

圧倒的コスパ!MINIプラン220円~/月

コアサーバー公式サイトをみる

本記事では、PHPとは何かという基本から、WordPressでの実践的な編集方法、バージョン管理やトラブル対策までをわかりやすく解説します。

PHPとは何か?基本を理解しよう

PHP(ピー・エイチ・ピー)は、当初からWebインターフェースの言語として発展してきました。1997年に公開されたPHP/FI 2.0では、その機能がさらに拡張され、より本格的なWebアプリケーション開発に利用されるようになったのです。

この段階で、多くの開発者がPHPの可能性に気づき、コミュニティが形成され始めます。PHPの現在のバージョンは8.4ですが、筆者も2.0からのユーザーです。

WordPressの土台を支える重要なプログラミング言語で、WordPressが誕生した当初からPHPとデータベースMySQLを基盤としています。少し難しく聞こえるかもしれませんが、初心者の方でも基礎から学べばしっかり使いこなせるようになるでしょう。

重要な注意事項
このページでは、WordPressのテーマやPHPファイルの編集方法をご紹介します。
ファイルの編集やカスタマイズを行う前には、必ずサイト全体のバックアップ(ファイル・データベース両方)を取得してください。
万が一エラーが発生しても、バックアップがあれば元の状態に復元できます。

PHPの基本概念と役割

PHP(ピー・エイチ・ピー)とは、サーバー上で動くプログラミング言語で、主にWebサイトを動的に表示するのに使われます。

特にWordPressでは、ページの表示・投稿データの処理・プラグイン機能など、あらゆる部分にPHPが使われており、Webサイトを裏側から支える重要な存在です。

PHPの特徴と役割
  • HTMLに埋め込んで使える:Webページと一体化して動作
  • サーバー上で実行:ユーザーの操作ごとに動的なページを生成
  • データベースと連携:投稿・コメント・ユーザー情報などを処理
  • WordPressのカスタマイズに必須:テーマ編集や機能追加が可能
  • 比較的シンプルな構文:初心者でも学びやすい

このように、PHPを理解することで、WordPressの操作やカスタマイズが格段にスムーズになります。

PHPのバージョンの違いと進化

WordPressを安全、かつ快適に運用するには、使用しているPHPバージョンとWordPressの互換性をしっかり理解することが重要です。

PHPは、WordPressのコア機能・テーマ・プラグインを動かす基盤の言語です。バージョンごとに処理速度やセキュリティ、使用可能な構文が進化しており、古いバージョンを使い続けることはトラブルの元にもなります。

そこで、以下にWordPressバージョン別のPHP対応表をご紹介します。

WordPress
バージョン
動作可能な
PHP バージョン
推奨 PHP バージョン特記事項
6.37.0–8.17.4–8.1PHP 5.6 サポート終了
6.47.2–8.27.4–8.2PHP 8.3 ベータサポート追加
6.57.2–8.37.4–8.3PHP 8.4 ベータサポート
6.67.2–8.27.4–8.2PHP 7.0–7.1 サポート終了
6.77.2–8.27.4–8.2PHP 8.4 ベータ継続
6.8 以降7.4–8.3最新対応最新 PHP に即対応
PHP対応表:WordPressバージョン別PHP互換性

※ 6.6 まで PHP 7.2~8.2、6.5 から PHP 8.3 ベータ、6.6 で 8.2 と互換性レベルに引き上げ

例えば、PHP 7.4 より前のバージョンはセキュリティ面・互換性面でリスクが高く非推奨です。

最新の PHP 8.2〜8.3 を使えば、パフォーマンス向上とセキュリティ強化が期待でき、WordPressの最新バージョンとも高い互換性があります。

PHPバージョン管理をしっかり行い、「PHP対応表」を参考に更新を進めると安全・快適な運用が可能です。

WordPressでのPHPの役割を知る

WordPressを「もっと自分らしく」「より便利に」使いこなしたい方にとって、PHPは欠かせない存在です。ここでは、テーマやプラグインでの活用方法と、WordPress本体におけるPHPの重要性についてやさしく解説します。

テーマとプラグインでのPHPの活用法

WordPressのテーマやプラグインには、PHPが深く組み込まれており、サイトのデザインや機能を自由にカスタマイズするための土台となっています。

PHPの活用例
  • テーマ:投稿の表示形式を変更、独自のウィジェットエリアの追加など
  • プラグイン:新しい機能の追加、既存機能の拡張、特定条件での自動処理など
  • 柔軟な調整:表示内容を条件に応じて出し分けることも可能

自分だけのデザインにしたい!」「もっと便利な機能を加えたい!」という場合、PHPの知識があれば自由度の高いカスタマイズが実現します

WordPress本体におけるPHPの重要性

WordPressそのものも、PHPで構成されたコアプログラムによって動いています。つまり、PHPはWordPressの“心臓部”のような存在です。

PHPが支えるWordPressの仕組み
  • ページ生成:PHPが動的にHTMLを生成
  • データベースとの連携:投稿・ユーザー情報などのやりとりを処理
  • 高速な表示:PHPの処理により、ユーザーに素早く情報を届ける
  • トラブル対応に有効:エラーの原因を特定したり、修正する手助けに

さらに、PHPのバージョンを最新に保つことで、セキュリティや処理速度の面でも大きなメリットがあります。

PHPバージョン管理とアップデート方法

WordPressサイトを安全・快適に保つには、PHPのバージョン管理は大変重要です。ここでは、WordPressに適したPHPバージョン・アップデート手順・注意点をわかりやすく解説します。

WordPressに適したPHPバージョンとは

WordPressに最適なPHPバージョンは「PHP 8.0以上の安定版」です。

これは、以下の理由からです。

  • 処理速度が大幅アップし、サイト表示が速くなる
  • セキュリティ強化により、脆弱性のリスクが減る
  • 最新機能の活用が可能になり、今後の拡張性もアップ
  • プラグインやテーマとの互換性が確保されやすい

WordPressの公式サイトでも、常に最新のPHPバージョン使用を推奨しています。古いバージョンのままでは、動作の不具合やセキュリティリスクが高まるため注意が必要です。

PHPのバージョン選びに悩んでいる方や、初心者で「どのサーバーを選べばいいかわからない…」という方には、コアサーバーのV2プランがぴったりです。

月額390円から始められる高コスパなレンタルサーバーで、PHP 8.0以上にも完全対応。さらに、WordPressの自動インストール機能付きで、最短1分半でサイト構築が可能です。

また、サーバーと一緒にドメインを申し込めば、ドメインが永久無料になる特典も用意されています。

圧倒的コスパ!MINIプラン220円~/月

コアサーバー公式サイトをみる

PHPバージョンのアップデート手順

PHPのアップデートは難しくありませんが、安全に行うにはいくつかのステップが必要です。

  1. 現在のPHPバージョンを確認
    (WordPressのダッシュボードやホスティングの管理画面から)
  2. WordPressの推奨バージョンと比較
  3. サイト全体のバックアップを取得
  4. ホスティングのコントロールパネルでPHPバージョンを変更
    例:cPanelなら「ソフトウェア」>「PHPバージョンの選択」
  5. サイト全体の動作確認(特にプラグイン・テーマのチェック)

この手順を踏めば、トラブルを最小限に抑えつつ、PHPをアップデートできます

アップデート時の注意点とトラブル対策

PHPをアップデートする際には、以下の点に注意してください

PHPアップデート時の注意点
  • 事前バックアップは必須:不具合が出ても復元できるように
  • 開発環境で事前テストを行うと安心
  • 古いテーマ・プラグインが対応していない可能性がある
  • アップデート後はエラーログを確認し、異常があれば対処

「アップデート後に画面が真っ白に…」という事態は、テーマやプラグインが新バージョンのPHPに未対応なケースに多いです。

その際は、PHPを元のバージョンに戻すか、最新のPHPバージョンに対応しているテーマやプラグインにアップデートします。
あるいはテーマやプラグインの開発元に、PHPバージョンの互換性について問い合わせてみましょう。

「画面が真っ白」はなぜ起きる?

WordPressのアップデート後、サイトが真っ白になる現象は「ホワイトスクリーン・オブ・デス(White Screen of Death)」と呼ばれ、WordPressユーザーが直面する一般的な問題の一つです。

この現象は、主に以下の2つの原因で発生します。

  1. PHPのエラー
    WordPressを構成するPHPファイルの中にプログラム上のエラーが発生すると、そこで処理が中断されてしまい、コンテンツが全く表示されなくなります。
    これは、WordPress本体、テーマ、またはプラグインのPHPコードに問題がある場合に起こりえます。
  2. JavaScriptのエラー
    PHPのエラーと同様に、サイトで利用しているJavaScriptのコードに問題(オブジェクトエラーなど)が発生した場合にも、ページの読み込みが途中で止まってしまい、画面が真っ白になることがあります。

画面が真っ白になった時の対応

画面が真っ白になった場合、まずは以下の手順で対応を検討しましょう。

画面が真っ白になった時の対応
1. まずは元に戻す

最も安全で手軽な方法は、アップデート前の状態にサイトを戻すことです。バックアップデータがある場合は、それを使って復元しましょう。
これですぐにサイトを正常な状態に戻せる可能性があります。

2. エラー箇所を特定する(上級者向け)

プログラミング知識のある方は、エラーの原因となっている箇所を特定し、自分で修正することも可能です。

  • PHPのエラー
    サーバーのアクセスログエラーログを確認します。通常、エラーが発生したPHPファイルとその行数が記録されており、それを手がかりに問題のファイルを特定し、修正することができます。
    あるいは、WordPressの設定ファイル「wp-config.php」中に define('WP_DEBUG', false); が記述されており、これを define('WP_DEBUG', true); に変更します。
    エラーがある場合は、その情報が管理画面上部に表示されるようになります。
  • JavaScriptのエラー
    Webブラウザに搭載されている開発者ツール(デベロッパーツール)を開くと、コンソールに表示されるエラーメッセージから問題のJavaScriptを特定できます。

もし、上記作業が難しいと感じたなら、無理に自分で解決しようとせず、専門家や開発者に相談することをおすすめします。

バックアップの必要性

WordPressサイトは、大きく分けてファイルとデータベースの2つの要素で成り立っています。

  • ファイル:WordPress本体のシステムファイル、テーマ、プラグイン、そして画像などのアップロードファイルが含まれます。
  • データベース:投稿記事や固定ページの内容、コメント、WordPressの設定、テーマやプラグインの設定など、サイトのコンテンツと構成情報が保存されています。

これらのどちらか、あるいは両方に問題が発生すると、サイトが表示されなくなったり、機能しなくなったりする可能性があります。例えば、PHPファイルを編集してミスをしてしまうと、画面が真っ白になってしまうことも。

しかし、バックアップをしておけば、万が一サイトに不具合が起きても、いつでも正常な状態に戻せます。

WordPressのバックアップ方法はいくつかあります。状況に合わせて最適な方法を選びましょう。

WordPressのバックアップ方法
1. レンタルサーバーのバックアップ機能を利用する

多くのレンタルサーバーには、バックアップ機能が標準で備わっています。

  • 手軽さ:サーバーの管理画面から簡単に設定できます。
  • 自動バックアップ:サーバーによっては、自動でバックアップを作成してくれるプランもあります。

例として、XREAではデータベースのバックアップ機能があり、コンテンツも特別な設定なしで自動でバックアップされるようです。まずはご契約中のレンタルサーバーの機能を確認してみましょう。

2. WordPressプラグイン(BackWPupなど)を利用する

WordPressのプラグインを使えば、WordPressの管理画面から手軽にバックアップを取ることができます。

  • WordPress内で完結:バックアップのスケジュール設定や保存先の設定もWordPress上で行えます。
  • 便利な機能:自動バックアップやクラウドストレージへの保存など、便利な機能が充実しています。

「BackWPup」が有名ですが、他にも多数のバックアッププラグインがあるので、ご自身のサイトに合ったものを選んでみてください。

「BackWPup」について「WordPressプラグインおすすめ13選」の記事で紹介しています。あわせてご覧ください。

3. 手動でバックアップする

より細かく管理したいなら、手動でバックアップを取ることも可能です。

  • ファイルのバックアップFTPソフトなどを使ってWordPressのフォルダ全体をダウンロードしたり、変更を加えるファイルだけをコピーして保管したりする方法です。
    特にPHPファイルなどを試行錯誤しながら編集する際は、編集前のファイルをコピーしておくことをおすすめします。
  • データベースのバックアップ:サーバー付属のphpMyAdminなどのツールを使ってデータベースをエクスポートしたり、コマンドラインからバックアップを作成します。

WordPressでのPHPファイル編集の具体的な手順

WordPressサイトをカスタマイズするには、PHPファイルの編集が不可欠です。ここでは、2つの方法を紹介します。

テーマエディターでPHPを編集する方法

WordPressの管理画面から直接アクセスできる便利な機能です。
手軽に編集できますが、コードの記述ミスでサイトが表示されなくなるリスクもあるため注意が必要です。編集前には、ファイルの内容をコピーして保存しておくと安心です。

以下は、テーマファイルの編集手順です。

  1. WordPressの管理画面にログイン
  2. 「外観」→「テーマファイルエディター」を開く
  3. 編集したいPHPファイル(例:functions.php)を選択
  4. 必ず編集前にバックアップを取得
  5. コードの意味を理解したうえで、必要な変更を加える

FTPソフトでPHPファイルを編集する方法

FTPソフトを使えば、より安全にPHPファイルを直接編集できます。

その前にWordPressの標準的なディレクトリ構成を知っておく必要があるでしょう。テーマファイルやプラグインファイルは下図の青色のフォルダ配下にそれぞれあります。

FTPソフトでのテーマの編集方法は、以下の通りです。

  1. FTPソフト(例:FileZilla)をインストール
  2. ホスティング会社から提供されたFTP情報で接続
    ・ホスト名、ユーザー名、パスワードなど
  3. public_htmlwww フォルダ内の wp-content/themes に移動
  4. 使用中テーマのフォルダを開き、編集したいPHPファイルをダウンロード
  5. 編集前に必ずバックアップとして別名保存
  6. テキストエディタで編集後、再びFTPでアップロードして上書き

FTPを使うと、トラブル発生時にもすぐに修正や復元が可能で、慣れてきた方にはおすすめの方法です。

以下では、おすすめのFTPソフトやFTPによるファイル転送を紹介しています。

ホスティング会社のファイルマネージャー(サーバーの管理画面でファイルをアップ / ダウンロードする機能)や、ブラウザー上でFTP操作可能な簡易的ツールが提供されていますので、これらを利用しても同様のことができます。

WordPressでのPHPカスタマイズの実践

WordPressをもっと自由にカスタマイズするには、PHPの活用が欠かせません。ここでは、テーマファイルの編集方法と、プラグインを使ったカスタマイズ、更にシステムファイルの修正・追加について詳しく解説します。

テーマファイルの編集方法

テーマファイルの編集は、WordPressカスタマイズの基本です。
特に functions.php ファイルは、テーマの動作や独自機能の追加に利用する重要なファイルです。例えば、サイドバーの追加やショートコードの作成などが行えます。

子テーマを使って安全にカスタマイズする

テーマファイルを編集する際は、子テーマ(Child Theme)の利用が推奨されます。

子テーマとは、親テーマの機能やデザインを引き継ぎつつ、カスタマイズ部分を分離して管理できる仕組みです。親テーマを直接編集せずに、子テーマを通じて変更を加えることでアップデートによるリセットを防げます。

子テーマを使う主なメリット
  • 親テーマのアップデートで変更が消えるリスクを回避
  • functions.php や style.css を安全に編集できる
  • テーマカスタマイズの整理・管理がしやすい

以下は、子テーマの基本的な作成方法です。

  1. /wp-content/themes/ に新しい子テーマ用フォルダを作成
  2. style.cssfunctions.php を用意し、親テーマの情報を記述
  3. WordPress管理画面の「外観」から子テーマを有効化

コードに自信がない場合は、「Child Theme Configurator」などのプラグインを使えば、数クリックで子テーマを自動生成できます。

実際に functions.php のカスタマイズ例を紹介します

記事の冒頭に「この記事は〇分で読めます」と表示するようにしてみましょう。

子テーマの functions.php に追記するコード:

/**
 * Cocoonテーマのカスタマイズ用functions.php
 * 親テーマのfunctions.phpは読み込まれます。
 * ここにオリジナルの関数などを記述することで、親テーマをアップデートしても変更が維持されます。
 */

// 記事の読了時間を計算して表示する関数
function add_reading_time_to_content($content) {
    if (is_single() && !is_admin()) { // 投稿ページかつ管理画面以外で表示
        $word_count = str_word_count(strip_tags($content)); // HTMLタグを除去して単語数をカウント
        $reading_speed = 400; // 1分あたりの読了単語数(日本語の場合、一般的に400~600文字/分)
        $reading_time = ceil($word_count / $reading_speed); // 切り上げ

        $reading_time_html = '<div class="reading-time-info" style="text-align: right; font-size: 0.9em; color: #666; margin-bottom: 1em;">';
        $reading_time_html .= 'この記事は ' . $reading_time . '分 で読めます。';
        $reading_time_html .= '</div>';

        return $reading_time_html . $content;
    }
    return $content;
}
add_filter('the_content', 'add_reading_time_to_content');

1. WordPress管理画面から「外観」>「テーマファイルエディター」>「functions.php」を選択すると、ファイルの編集領域が表示されます。

テーマ関数編集画面

2. functions.php にコードを追記しファイルを更新します。(前述のコードを貼り付けてください)

テーマ関数改修

add_filter('the_content', 'add_reading_time_to_content');:
WordPressの the_content フィルターフックに作成した関数を登録しています。これにより記事のコンテンツが表示される直前にこの関数が実行され、読了時間が挿入されます。その結果、記事の右上に「この記事は1分で読めます」と自動で追記されます。
※何分かは文字数により、おおよその速度が計算された値です。

記事に自動追加

どうでしょうか?とても簡単に表示機能の追加ができました。WordPressには独自の内部関数・変数が多数ありますので、それらを組み合わせてプログラミングすれば独自機能を実装できます。

言語はPHPですが他言語を習得されている方ならすぐにでも理解できます。今回はWordPressの管理画面で提供されているテーマファイルエディターで編集しましたが、後述のPHPファイルそのものを取得して直接編集する方法もあります。修正結果は全く同じになります。

スタイルシート style.css も変更してみましょう

WordPressの functions.php と style.css は、どちらもテーマのカスタマイズに使われますが、役割が大きく異なります。
functions.php は「テーマの機能」を追加・変更するためのPHPファイルです。

それに対し style.css は「テーマのデザイン」を決めるCSSファイルです。では具体的に投稿記事のH2見出しの色を変更して、先ほどの読了時間の表示スタイルを変更してみましょう。

子テーマの style.css に追記するコード:

/* style.css */

/* 投稿記事内のH2見出しの色を変更 */
.entry-content h2 {
    color: #007bff; /* 青系の色に変更 */
    border-bottom: 2px solid #007bff; /* 下線の色も変更 */
    padding-bottom: 5px;
    margin-bottom: 1.5em;
}

/* 読了時間の表示スタイル(functions.phpのサンプルと連携) */
.reading-time-info {
    font-weight: bold;
    color: #c0392b !important; /* 強調したい色に変更 */
    border-bottom: none !important; /* 不要な下線を消す */
}

1. Wordpres管理画面から「外観」>「テーマファイルエディター」>「style.css」を選択すると、ファイルの編集領域が表示されます。

スタイルシート編集画面

2. style.css にコードを追記しファイルを更新します。(前述のコードを貼り付けてください)

スタイルシート更新

反映後の結果は見てのとおりです。読了時間の表示スタイルの変更は functions.php で追加した add_reading_time_to_content 関数のHTML出力で、<div class="reading-time-info"~があり、このスタイル名を指定して文字の属性を変更しています。

スタイルシート反映後画面

PHPを直接編集しなくても、プラグインを使えば柔軟な機能追加が可能です。特に初心者やコードに不慣れな方には、プラグイン活用が安心・安全な選択肢となります。

プラグイン活用のポイント
  • Contact Form 7:お問い合わせフォームを簡単に設置
  • WooCommerce:ネットショップ機能を追加
  • Advanced Custom Fields:投稿画面を柔軟にカスタマイズ
  • 公式ディレクトリから信頼性の高いプラグインを選ぶ
  • アップデートと互換性の確認を忘れずに

コードを書くのが不安…」という方でも、プラグインを利用すれば安心して機能追加が可能です。使い方もシンプルで、インストール・有効化だけで多くの機能が使えるようになります。

プラグイン Contact Form 7をインストールしてみましょう

Contact Form 7はWordPressに問い合わせページを設置するのに非常に便利なプラグインです。

Contact Form 7を使えば、専門知識がなくても直感的にお問い合わせフォームの設定が可能です。複雑なコード記述不要で、必要な項目を追加したり、送信後のメッセージを設定したりと、まるでブロックを組み立てるかのように設定が完了できます。

Contact Form 7のインストール手順

1.「WordPress 管理画面」>「プラグイン」>「プラグインの検索 [Contact form]」で、検索結果に表示されたContact Form 7の「今すぐインストール」をクリックします。

Contact Form 7のプラグイン検索

2. インストール後に「有効化」ボタンが表示されるので、「有効化」をクリックします。

プラグインContact Form 7有効化

3. プラグインのリストにContact Form 7が追加されます。また「設定」リンクが追加されています。

プラグインリスト

4. Contact Form 7 を有効化すると、管理画面の左メニューに「お問い合わせ」という項目が追加されます。このリンクをクリックするとコンタクトフォームを追加・編集できます。(プラグインリスト中のContact Form 7にある「設定」をクリックしても同画面が表示されます)

お問い合わせコンタクトフォーム設定

5.「お問い合わせ」>「コンタクトフォーム」>「コンタクトフォームを追加」をクリックします。タイトル欄に ”お問い合わせ-1” と入力します。(タイトルは任意です。複数設置する場合は分かりやすい名前にしてください)

コンタクトフォームタイトル入力

6. プラグインのリストにContact Form 7が追加されます。また「設定」リンクが追加されています。

プラグインリスト

7.「フォーム」「メール」「メッセージ」の必要な項目を入力します。
設定するラベルの文字列の意味や設定で困った場合は、右欄に「お困りですか?」にドキュメントのリンクがあるので参照してください。

各種設定のポイント
  • フォーム:お問い合わせに必要な入力フォームを簡単に設置できます。
  • メール:問い合わせがあった時に受信するメールの内容を設定できます。
  • メッセージ:問い合わせ送信後に表示されるメッセージの文言をカスタマイズできます。

デフォルト設定でも氏名、メールアドレス、題名、メッセージ本文の4項目が設定されているので、すぐにでも試したい場合はデフォルト状態でもかまいません。

「フォーム」の編集画面

フォーム設定

「メール」の編集画面

メール設定画面

「メッセージ」の編集画面

メッセージ設定画面

8. 各必要な事項を設定して「保存」をクリックします。フォームのショートコードが表示されているので、コピーしておきます。(後でいつでもこのショートコードは参照できます)

お問い合わせショートコード

9. お問い合わせ固定ページを作成します。「固定ページ」>「固定ページを追加」をクリックします。

固定ページの追加

10. お問い合わせ固定ページにタイトル、本文にショートコードを記入し「保存」をクリックします。

お問い合わせページ

11. 固定ページ一覧にお問い合わせが追加されます。

固定ページ一覧

12. 最後にホームページのリンクにお問い合わせページのリンクを追加します。
「外観」>「固定ページ」のお問い合わせを選択し、「メニューに追加」をクリックして「メニューを保存」をクリックします。

メニューに追加

これで「お問い合わせ」ページがリンクされました。

実際のお問い合わせ画面

ヘッダーメニュー

上記の固定ページを上部メニュー(グローバルメニュー)に追加する方法は、Cocoonテーマを使った例で紹介しています。他のテーマをお使いの場合は、各テーマの設定方法をご確認ください。

スパム対策 reCAPTCHA(v3)の導入

「お問い合わせ」設置後このままだといずれ確実にスパムアタックを受けてサーバーに負荷をかけてしまいます。

さらに迷惑メールが頻発してどうにもならない状態に陥ってしまうので、そのような事態を発生させないためにも対策用プラグインをインストールしてください。一番簡単なのは「reCAPTCHA(v3)」の導入です。

reCAPTCHAはGoogleのサービスです。使用には Google のアカウントが必要になります。reCAPTCHAの利用はサイトキーとシークレットキーを取得し、それをWordPressに設定するとサイト全体(全ページ)にスパム対策ができます。

reCAPTCHAの導入手順

1. GoogleのreCAPTCHA 管理コンソールにアクセスします。(Googleのログイン画面が表示された場合はGoogleアカウントでログインしてください)

2. 利用するサイトを登録します。ラベルは任意の名前、タイプはスコアベースを選択、ドメインは利用するドメイン名を入力して、「送信」をクリックします。

reCAPTCHA登録画面

3. サイトキーとシークレットキーが表示されます。

サイトキーとシークレットキー

4.「WordPress 管理画面」>「お問い合わせ」>「インテグレーション」>「インテグレーションのセットアップ」をクリックします。

インテグレーション

5. 取得したサイトキーとシークレットキーを登録します。

サイトキーとシークレットキーの登録

以上で登録完了です。全ページ右下にreCAPTCHAアイコン reCAPTCHAアイコン が表示されます。サイトが守られている状態です。

ただ、スパムはこれさえも破られる恐れがあるので、WordPress・プラグイン・PHPの脆弱性には常に気にかけ、インターネット上で脆弱性が発表されたら都度バージョンアップ等で対策してください。

Googleアカウント不要で使えるスパム対策として、Cloudflareの「Turnstile」もおすすめです。
reCAPTCHAよりもユーザーの操作負担が少なく、無料で使える高精度なボット対策サービスです。

簡単なプラグインを作ってみよう

少し上級者向けになりますが、プラグインそのものを作って、FTPでサーバーにアップロードしてみましょう。
作成するプラグインは、「今日の気温プラグイン」です。

今日の気温プラグインの特徴
  1. 管理画面で「都市名」と「APIキー」を保存できる
  2. ショートコード [today_temp] だけで表示可能
  3. キャッシュ機能で1時間以内の再取得はスキップ(API回数削減)

today-temperature.php プラグインのコード:

<?php
/*
Plugin Name: 今日の気温(設定&キャッシュ付き)
Description: 管理画面で都市とAPIキーを設定でき、ショートコードで気温を表示するシンプルなプラグイン。
Version: 1.1
*/

add_action('admin_menu', 'today_temp_add_admin_menu');
add_action('admin_init', 'today_temp_settings_init');

// 管理メニュー追加
function today_temp_add_admin_menu() {
    add_options_page('今日の気温 設定', '今日の気温', 'manage_options', 'today_temp', 'today_temp_options_page');
}
// 設定フィールド登録
function today_temp_settings_init() {
    register_setting('todayTempSettings', 'today_temp_settings');

    add_settings_section(
        'today_temp_section',
        'API設定',
        null,
        'todayTempSettings'
    );

    add_settings_field(
        'city',
        '都市名(例:Tokyo)',
        'today_temp_city_render',
        'todayTempSettings',
        'today_temp_section'
     );

    add_settings_field(
        'api_key',
        'OpenWeatherMap APIキー',
        'today_temp_apikey_render',
        'todayTempSettings',
        'today_temp_section'
     );
}

// 都市名入力フィールド
function today_temp_city_render() {
    $options = get_option('today_temp_settings');
    $city = isset($options['city']) ? esc_attr($options['city']) : 'Tokyo';
    echo '<input type="text" name="today_temp_settings[city]" value="' . $city . '" />';
}

// APIキー入力フィールド
function today_temp_apikey_render() {
    $options = get_option('today_temp_settings');
    $api_key = isset($options['api_key']) ? esc_attr($options['api_key']) : '';
    echo '<input type="text" name="today_temp_settings[api_key]" value="' . $api_key . '" />';
}

// 設定ページHTML
function today_temp_options_page() {
    echo '<form action="options.php" method="post">';
    echo '<h2>今日の気温 プラグイン設定</h2>';
    settings_fields('todayTempSettings');
    do_settings_sections('todayTempSettings');
    submit_button();
    echo '</form>';
}

// ショートコード [today_temp]
add_shortcode('today_temp', 'today_temp_shortcode');
function today_temp_shortcode() {
    $options = get_option('today_temp_settings');
    $city = isset($options['city']) ? $options['city'] : 'Tokyo';
    $api_key = isset($options['api_key']) ? $options['api_key'] : '';
    if (!$api_key) {
        return 'APIキーが設定されていません。';
    }
    // キャッシュ取得
    $cache_key = 'today_temp_cache_' . md5($city);
    $cached = get_transient($cache_key);
    if ($cached !== false) {
        return $cached;
    }
    // API取得
    $url = "http://api.openweathermap.org/data/2.5/weather?q=" . urlencode($city) . "&appid={$api_key}&units=metric&lang=ja";
    $response = wp_remote_get($url);
    if (is_wp_error($response)) {
        return '気温の取得に失敗しました。';
    }
    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);

    if (isset($data['main']['temp'])) {
        $temp = round($data['main']['temp'], 1);
        $output = $city . ' の現在の気温は ' . $temp . '℃ です。';

        // 1時間キャッシュ
        set_transient($cache_key, $output, HOUR_IN_SECONDS);

        return $output;
    }

    return '気温データが取得できませんでした。';
}
設定方法

1. 上記コードをメモ帳等(文字コードはUTF8)で作成し、today-temperature.php として保存します。

2. FTPでサーバーに接続します。(ここではFTPツールFileZillaを使ってみます。FTPツールはご自分で使い慣れたものを使用してください)

3.「plugins」フォルダに「today-temperature」フォルダを作成します。(フォルダ名は自由です)

pluginsフォルダー
plugins新規サブフォルダー

4. today-temperature.php ファイルを wp-content/plugins/today-temperature 配下にアップロードします。(FileZillaではドラッグ&ドロップでアップロードできます)

phpファイルアップロード

5.「WordPress 管理画面」>「プラグイン」>「今日の気温」が自動的に追加されているので、「有効化」をクリックします。

プラグイン今日の気温

有効化をクリックした際に ”重大なエラー” と表示された場合は、ファイル内容に誤りがあるため、見直してください。この場合は有効化されず無効のままとなります。

6.「WordPress 管理画面」>「設定」>「今日の気温」で項目入力が可能になります。

今日の気温設定

OpenWeatherMap APIキーが必要です。OpenWeatherMapの公式サイトにアクセスして、アカウントを作成し、APIキーを取得します。(無料枠で最大60 API calls/分、最大1,000,000 API calls/月です)

  1. 右上リストの「Sign in」>「Create an Account」を選択し、必要情報を入力してアカウントを作成します。
    登録したメールアドレスに確認メールが届くので、認証を完了させます。
  2. 右上の自身のユーザーネームをクリックし、ヘッダーメニューから「API keys」をクリックします。
    デフォルトでKeyが作成されているのでそれを使用します。Create Keyで新規キーを作成してもかまいません。
OpenWeatherMap APIキー

7.「WordPress 管理画面」>「設定」>「今日の気温」で地域とKeyを設定します。地域名は英文字でOpenWeatherMapから確認してください。入力できれば「変更を保存」をクリックします。

今日の気温プラグイン設定入力

8.投稿や固定ページに [today_temp] を貼るだけで、気温が表示されます!
試しに投稿記事に入れてみましょう。

表示結果

気温自動挿入記事
気温自動追加記事表示

カスタマイズ設定値の保存場所

今回作成したプラグイン「今日の気温」で入力する都市名、APIキーはどこに記録されるのでしょうか?ファイルでしょうかそれともデータベースでしょうか?
これらはWordPressのオプションテーブル(通常は wp_options テーブル)に保存されています。このことからも、WordPressはファイルだけでなく、データベースもバックアップすることが必要です。

どうでしょうか、これだけで自分独自のプラグインを作成して追加することができます。プログラミングできる方はぜひ色々試してください。

WordPressとPHPに関するよくある質問

WordPressでPHPの知識が必要なのはなぜ?

WordPressはPHPで動いており、PHPの基本を知ることでカスタマイズやトラブル対応が格段にしやすくなります。

WordPressでPHPの知識が必要な理由
  • WordPressのテーマ・プラグインはPHPで作られている
  • デザインや機能を自分好みに編集できる
  • エラーの原因を特定しやすくなる
  • アップデート時の不具合にも対応しやすい

もっと自由にサイトを作りたい」「トラブルに強くなりたい」という方には、PHPの基本理解が大きな武器となります。

PHPファイルが編集できないときの対処法は?

PHPファイルが編集できない場合は、以下のポイントをチェックしましょう。

PHPファイルが編集できないときの対処法
  • パーミッションの確認:ファイルは「644」、ディレクトリは「755」が基本設定
  • ファイルロックの有無:FTPソフトでロック解除、もしくはサーバー管理者に依頼
  • プラグインの干渉確認:一時的にすべてのプラグインを無効化して再確認
  • サーバーのエラーログ確認:具体的なエラー原因を探す手がかりになる

特にパーミッションやプラグインの干渉は、初心者が見落としがちなポイントです。編集できない場合は、焦らずに一つずつ確認してみてください。

WordPressは重たいか?

WordPressが「重い」と感じるかどうかは、使い方や設定、そして比較対象により大きく異なります。 一概に「重い」とは言えませんが、適切に設定すれば非常に高速に動作させることも可能です。

WordPressが重いと言われる主な理由
  • 多機能性ゆえのオーバーヘッド
    コア機能だけでもそれなりのコード量があり、これが「重さ」の原因になったりします。特に使わない機能が多い場合、それがパフォーマンスに影響を与えることがあります。
  • プラグインの過剰な利用
    プラグインをたくさん導入しすぎると、それぞれのプラグインが追加のスクリプトやスタイルシートを読み込んだり、データベースへの問い合わせを増やすため、サイト全体の読み込み速度が低下します。
  • テーマの選択
    デザインが豊富で多機能なテーマは、多くのJavaScriptやCSSを含んでいることが多く、これがページの読み込み速度に影響を与えることがあります。
  • データベースの肥大化・未最適化
    サイトの運用期間が長くなると、リビジョンやスパムコメント、削除されたデータなどがデータベースに蓄積され、肥大化することがあります。これがデータベースの応答速度を低下させ、サイト全体のパフォーマンスに影響します。

WordPressを高速化する方法は?

WordPressを高速化する方法
  • 高品質なホスティングを選ぶ:WordPressに特化した高速なサーバーを利用します。
  • キャッシュプラグインの導入:WP Super Cache や LiteSpeed Cache、WP Rocket などを使って、ページのキャッシュを有効にします。
  • 不要なプラグイン・テーマの削除:使っていないプラグインやテーマは削除し、必要なものだけを厳選します。軽量なテーマを選ぶことも重要です。
  • データベースの最適化:プラグイン(WP-Optimizeなど)やphpMyAdminを使って、データベースを定期的にクリーンアップします。

豊富な機能と拡張性を持つがゆえに無対策だと重くなりがちですが、上記のような最適化を行うことで、プロフェッショナルなWebサイトでも十分に高速運用が可能です。

LiteSpeed Cacheの使い方を以下で紹介しています。高速化にお役立てください。

 まとめ

WordPressでのPHP活用は、サイトの自由度と機能性を大きく高める重要なステップです。「PHPは難しそう」と感じるかもしれませんが、少しずつコードに触れていくことで、既存のテーマやプラグインを自分好みに変更したり、ショートコードで特定の情報を表示させたりと、サイトをよりパーソナルなものにカスタマイズできるようになります。

テーマやプラグインの編集だけでなく、バージョン管理やサーバー環境の選定まで含めてしっかり対応することが、安定したサイト運営のカギになります。

PHPのバージョンはサイトの速度やセキュリティに影響を与え、常に最新の状態を保つよう心がけましょう。また、安定したサーバー環境を選ぶことも、快適なWordPress運用には不可欠です。

もし「どのサーバーを使えばいいか迷っている」「PHPバージョン対応が不安」という方は、ぜひ「コアサーバーV2プラン」を検討してみてください。

月額390円から使える高コスパな環境で、WordPressの自動インストールや最新PHPのサポート、ドメイン永久無料特典など、初心者にもやさしい充実の機能が揃っています。

コアサーバーで、あなたの理想のWordPressサイトをカタチにしましょう。

圧倒的コスパ!MINIプラン220円~/月

コアサーバー公式サイトをみる
▽キャンペーン開催中!
コアサーバーでは、V2プランとドメインの同時申し込みで
ドメインが実質0(年間最大3,882円お得)になるサーバーセット割特典
を展開中です。
是非、お得なこの機会にご利用ください!
最新のキャンペーンは
こちらから

超高速化を実現するレンタルサーバー CORESERVER

▽キャンペーン開催中!
バリュードメインでは、
【 .com1個目 790 】のドメインセール、
ドメイン・サーバー同時契約でドメイン費用永久無料(年間最大3,124円お得)
などお得な特典やキャンペーンが盛りだくさん!
是非、お得なこの機会にご利用ください。最新のキャンペーンはこちらから

ドメイン取得ならValue Domain

ユーザーノートの記事は、弊社サービスをご利用のお客様に執筆いただいております。

執筆者:苗場 翔様

医療メーカーで新素材研究開発後、電機メーカーで制御器系システム開発を経てIT系マルチエンジニアをしています。またデザイン思考を実践し、アート思考などのいろんな思考方法に興味があります。

Posted by admin-dev


おすすめ関連記事

service

Value Domain
ドメイン取得&レンタルサーバーなら
Value Domain
ドメイン登録実績600万件を誇るドメイン取得・管理サービスと、高速・高機能・高品質なレンタルサーバーや、SSL証明書などを提供するドメイン・ホスティング総合サービスです。
目次へ目次へ