WordPressの「プラグイン」とは?──スマホの”アプリ”みたいなもの
WordPressを使ったことがある方なら、「プラグイン」という言葉は聞いたことがあると思います。
でも、いざ「プラグインって何?」と聞かれると、うまく説明できない方も多いのではないでしょうか。
すごくシンプルに言うと、プラグインとはWordPressに機能を追加するための拡張パーツのことです。
スマホにたとえるなら「アプリ」がいちばん近いイメージですね。
スマホ本体(=WordPress本体)だけでも電話やカメラは使えるけど、LINEを入れればメッセージが送れるし、乗換案内を入れれば電車の時刻が調べられる。
プラグインもそれと同じで、
「お問い合わせフォームを付けたい」「SEO対策をしたい」「セキュリティを強化したい」といった機能を、必要に応じてポンポン追加できる仕組みなんです。
WordPress公式のプラグインディレクトリには、2026年現在で約60,000個以上のプラグインが登録されています。
ただ、「既存のプラグインでは微妙にかゆいところに手が届かない」「自分のサイト専用のちょっとした機能がほしい」──そんなときに役立つのが、プラグインの自作(開発)というわけです。
プラグインを開発するうえで考慮すべきこと
「よし、さっそく作ってみよう!」
と行きたいところですが、その前に知っておいてほしい大切なポイントがいくつかあります。
ここを飛ばしてしまうと、後から大きなトラブルになりかねないので、ちょっとだけお付き合いくださいね。
セキュリティ──これが最優先です
プラグインは、WordPressの内部に組み込まれて動くプログラムです。
つまり、プラグインに脆弱性(セキュリティの穴)があると、サイト全体が攻撃者に狙われる入り口になってしまう可能性があります。
実際、WordPressのセキュリティ被害の多くは「プラグインの脆弱性」が原因と言われています。
IPA(情報処理推進機構)の「情報セキュリティ10大脅威 2026」でも、システムの脆弱性を突いた攻撃が組織向け脅威の4位にランクインしています。
開発時に意識してほしいセキュリティの基本は、大きく3つあります。
1つ目は「入力値のサニタイズ(無害化)」。 ユーザーからの入力は、必ず悪意のあるデータが含まれている前提で処理しましょう。WordPressには sanitize_text_field() や intval() といった便利なサニタイズ関数が用意されています。
2つ目は「出力時のエスケープ」。 データを画面に表示する前に、HTMLの特殊文字を無害な文字に変換する処理です。
esc_html() や esc_attr() などの関数を使うことで、クロスサイトスクリプティング(XSS)攻撃を防ぐことができます。
3つ目は「nonce(ナンス)チェック」。
フォーム送信やAJAXリクエストが本当にあなたのサイトから送られたものかどうかを検証する仕組みです。
これを入れておかないと、外部から偽のリクエストを送りつけられる「CSRF攻撃」を受ける可能性があります。
WordPressのコーディング規約を守る
WordPressには公式の「コーディング規約(Coding Standards)」があります。
関数名の付け方、インデントの仕方、コメントの書き方など、細かいルールが決められています。
自分だけが使うプラグインなら多少の自由は効きますが、
公式ディレクトリに公開する場合はこの規約に従う必要があります。
将来のことも考えて、最初から意識しておくのがおすすめです。
他のプラグインやテーマとの競合
WordPressの世界では、複数のプラグインやテーマが同時に動作します。
自分のプラグインが他のプラグインと関数名やクラス名が被ってしまうと、サイトがエラーで真っ白になる……なんてことも起こり得ます。
関数名やクラス名にはユニークなプレフィックス(接頭辞)を付けるようにしましょう。
たとえば my_awesome_plugin_ のような感じです。
実際に作ってみよう! 超シンプルなプラグインの作り方
さて、ここからがメインディッシュです。
「理屈は分かったけど、具体的にどうやって作るの?」という方のために、
データベースへのアクセスを一切しない超シンプルなプラグインを一緒に作ってみましょう。
今回作るのは、WordPressの全ページのフッター(ページの一番下)に
自動でコピーライト表記を追加してくれるプラグインです。
ステップ1:プラグイン用のフォルダとファイルを作る
まず、WordPressがインストールされているサーバーの中にある、以下のディレクトリを開いてください。
wp-content/plugins/Bashこの plugins フォルダの中に、自分のプラグイン専用のフォルダを新しく作ります。今回は my-copyright というフォルダ名にしましょう。
wp-content/plugins/my-copyright/Bash次に、このフォルダの中にメインとなるPHPファイルを作ります。ファイル名はフォルダ名と揃えるのが慣例です。
wp-content/plugins/my-copyright/my-copyright.phpBashこれでファイル構成はOKです。
たった1フォルダ・1ファイルで大丈夫なんです。
ステップ2:ヘッダーコメントを書く
作成した my-copyright.php を開いて、まず「プラグインヘッダー」と呼ばれるコメントを書きます。
これはWordPressに「このファイルはプラグインですよ」と教えてあげるためのお約束です。
<?php
/**
* Plugin Name: My Copyright
* Description: フッターにコピーライト表記を自動追加するシンプルなプラグインです。
* Version: 1.0.0
* Author: あなたの名前
* License: GPL-2.0-or-later
*/
PHP最低限必要なのは Plugin Name の1行だけですが、Description や Version、Author なども書いておくと、管理画面のプラグイン一覧で確認しやすくなるので入れておきましょう。
ステップ3:機能のコードを書く
ヘッダーコメントの下に、実際の機能を書いていきます。
今回は「フッターにコピーライトを出す」というシンプルな処理です。
// 直接アクセスされた場合は処理を中断する(セキュリティ対策)
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* フッターにコピーライト表記を出力する
*/
function my_copyright_display() {
$year = date( 'Y' );
echo '<div style="text-align:center; padding:20px; font-size:14px; color:#666;">';
echo '© ' . esc_html( $year ) . ' My Website. All Rights Reserved.';
echo '</div>';
}
add_action( 'wp_footer', 'my_copyright_display' );
PHPコード全体をまとめると、my-copyright.php の完成形はこうなります。
<?php
/**
* Plugin Name: My Copyright
* Description: フッターにコピーライト表記を自動追加するシンプルなプラグインです。
* Version: 1.0.0
* Author: あなたの名前
* License: GPL-2.0-or-later
*/
// 直接アクセスされた場合は処理を中断する
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* フッターにコピーライト表記を出力する
*/
function my_copyright_display() {
$year = date( 'Y' );
echo '<div style="text-align:center; padding:20px; font-size:14px; color:#666;">';
echo '© ' . esc_html( $year ) . ' My Website. All Rights Reserved.';
echo '</div>';
}
add_action( 'wp_footer', 'my_copyright_display' );
PHPたったこれだけです。ポイントを少しだけ補足しますね。
冒頭の if ( ! defined( 'ABSPATH' ) ) は、
このPHPファイルにブラウザから直接アクセスされた場合に処理を止めるためのセキュリティ対策です。
「おまじない」だと思って、必ず入れるようにしてください。
esc_html() は先ほど説明したエスケープ関数です。
今回は年号を出力するだけなのでリスクは低いですが、
「出力する値は必ずエスケープする」というクセを最初から付けておくと、
今後もっと複雑なプラグインを作るときに自分を守ってくれます。
add_action( 'wp_footer', 'my_copyright_display' ) は、WordPressの「フック」という仕組みを使っています。
これは「wp_footer というタイミングが来たら、my_copyright_display という関数を実行してね」とWordPressにお願いしている1行です。
WordPressのプラグイン開発は、基本的にこの「フック」を使って機能を差し込んでいく形になります。
ステップ4:プラグインを有効化する
ファイルを保存したら、WordPressの管理画面にログインして「プラグイン」メニューを開いてみてください。
「My Copyright」というプラグインが一覧に表示されているはずです。
「有効化」をクリックすれば、すぐにサイトのフッターにコピーライトが表示されます。
別の方法:ZIPファイルでアップロードする
サーバーに直接ファイルを置く方法のほかに、ZIPファイルにしてアップロードする方法もあります。
この方法は、ローカル環境で開発したプラグインを本番サーバーに反映するときに便利です。
手順は以下のとおりです。
まず、さきほど作った my-copyright フォルダごとZIP形式に圧縮します。
MacならフォルダをFinderで右クリックして
「”my-copyright”を圧縮」、Windowsなら右クリックして「ZIPファイルに圧縮する」でOKです。
次に、WordPress管理画面の「プラグイン」→「新規プラグインを追加」→「プラグインのアップロード」に進み、
作成した my-copyright.zip を選択してアップロードします。
アップロード後に「有効化」を押せば完了です。
プラグイン開発・利用の注意点──知らないと痛い目に遭うかも
プラグインが作れるようになると楽しくてどんどん機能を追加したくなりますが、
いくつか気をつけておきたい点があります。
アップデートへの対応を忘れない
WordPress本体は頻繁にアップデートされます。
本体が更新されたことで、自分のプラグインが動かなくなる……ということは珍しくありません。
特にメジャーバージョンのアップデート時は要注意です。
公開しているプラグインであれば、WordPress本体の更新に合わせてテスト・修正する体制を考えておきましょう。
ライセンスに注意する
WordPressはGPL(GNU General Public License)というライセンスで配布されています。
WordPress公式ディレクトリにプラグインを公開する場合は、GPL互換のライセンスにする必要があります。
先ほどのサンプルコードでもヘッダーに License: GPL-2.0-or-later と記載したのはそのためです。
「とりあえず公開」は危険
自分だけが使うプラグインならまだしも、公式ディレクトリで公開する場合は、セキュリティレビューが行われます。サニタイズ・エスケープ・nonceチェックが不十分なコードはリジェクト(差し戻し)されますし、万が一脆弱性のあるプラグインが公開されてしまうと、インストールした全てのサイトに被害が及ぶ可能性があります。
「完成したからすぐ公開」ではなく、セキュリティの観点からしっかりコードをレビューする工程を挟んでくださいね。
【そもそも論】プラグインは少ない方が良い
最後に、プラグイン開発とは少し違う角度の話ですが、とても大事なことをお伝えしておきます。
WordPressを使い始めると、
「こんな機能もある!」「あれも入れたい!」とプラグインをどんどん追加したくなるものです。
気持ちはよく分かります。
でも、プラグインは「多ければ多いほど良い」というものではありません。
むしろ、少ないに越したことはないんです。
理由はいくつかあります。
理由①:表示速度が落ちる
まず、サイトの表示速度が遅くなります。
プラグインが増えると、読み込むファイル(CSS、JavaScript)やデータベースへのクエリが増えて、ページの表示がもたつくようになります。表示速度はGoogleの検索順位にも影響するので、SEOの観点からも無視できません。
理由②:セキュリティ上のリスクが増える
次に、セキュリティのリスクが増えます。 プラグインの数だけ「攻撃の入り口」が増えるということです。すべてのプラグインが常に最新の状態に保たれていればまだよいのですが、開発が止まって更新されなくなったプラグインを放置していると、脆弱性がそのまま残り続けてしまいます。
理由③:プラグイン同士がケンカするかも
そして、プラグイン同士の競合(コンフリクト)が起きやすくなります。 プラグインAとプラグインBが内部で同じ処理を上書きし合って、どちらかが正常に動かなくなる……というのは、WordPress運用でよくあるトラブルです。プラグインが多いほど、原因の特定も大変になります。
一般的に、導入するプラグインの数は10〜15個以内に抑えるのが理想と言われています。もちろんサイトの規模や目的によって前後しますが、「入れる前に本当に必要か考える」「同じ機能のプラグインを2つ入れていないか確認する」「使っていないプラグインは無効化するだけでなく削除する」──この3つを意識するだけで、だいぶスッキリするはずです。
そして、ここが今回の記事のテーマとつながるのですが、「既存のプラグインを3つ入れるより、自分で1つ作った方がスマート」というケースもあります。
たとえば「ちょっとしたカスタマイズをしたいだけなのに、多機能すぎるプラグインを入れるのはオーバースペックだな」と感じたら、今回紹介したような軽量な自作プラグインで対応するのも一つの選択肢です。
まとめ──プラグイン開発は「はじめの一歩」がいちばん大事
WordPressのプラグイン開発と聞くと、なんだかすごく高度なことに聞こえるかもしれません。
でも、実際にやってみると、「え、これだけ?」と拍子抜けするくらいシンプルだったのではないでしょうか。
今回のポイントをおさらいしておきますね。
プラグインとは、WordPressに機能を追加するための拡張パーツのこと。開発時はセキュリティ(サニタイズ・エスケープ・nonce)を最優先に考えること。最小構成のプラグインは、フォルダ1つ・ファイル1つで作れること。プラグインは便利だけど、入れすぎには注意が必要なこと。
今回紹介したコピーライト表示のプラグインは、ほんの入門編です。ここから「管理画面に設定ページを追加してみよう」「ショートコードを作ってみよう」「データベースと連携してみよう」と、少しずつステップアップしていくと、できることがどんどん広がっていきます。
大切なのは、まず手を動かしてみること。この記事を読み終わったら、ぜひ実際にファイルを作って、自分のWordPressで動かしてみてくださいね。
あざした!
【参考】
- WordPress公式 Plugin Handbook(https://developer.wordpress.org/plugins/)
- WordPress公式 プラグインのヘッダー要件(https://ja.wordpress.org/team/handbook/plugin-development/plugin-basics/header-requirements/)
- IPA「情報セキュリティ10大脅威 2026」(https://www.ipa.go.jp/security/10threats/10threats2026.html)