Lesson 2
WordPressのアーキテクチャを知る
目次
Lesson 2
Chapter 1
WordPressのアーキテクチャ
Lesson 2
Chapter 2
ルートディレクトリの構造
Webアプリケーションの開発を行う際には、ルートディレクトリと呼ばれる特定のディレクトリを基点にして開発を行います。
このルートディレクトリには、アプリケーションに必要なファイルやフォルダが配置されています。
Webアプリケーションを開発するにあたって、ルートディレクトリの構造を理解することは非常に重要です。
ここでは、一般的なWebアプリケーションのルートディレクトリの構造について解説します。
ディレクトリ構造とは
ディレクトリ構造は、コンピュータのファイルシステム上に存在するファイルやディレクトリの階層構造を指します。
ファイルやディレクトリを整理し、簡単に見つけることができるようにします。
一般的に、ディレクトリ構造は、階層的な木構造を持ちます。
最上位のディレクトリはルートディレクトリであり、その下にサブディレクトリが含まれることがあります。
ディレクトリ構造は、オペレーティングシステムやアプリケーションの構成ファイルやデータ、ウェブアプリケーションのコードやファイルなど、さまざまな用途に使用されます。
それぞれの役割をしっかり把握していきましょう。
/wp-admin
wp-adminは、ウェブサイトのコンテンツ、設定、外観などを管理することができます。
wp-adminのディレクトリパスは、ルートディレクトリの直下です。
例えば、WordPressを "example.com/blog/" というサブディレクトリにインストールした場合、wp-adminディレクトリのパスは以下のようになります。
/example.com/blog/wp-admin/
インストールされたばかりの場合、以下のような内容になっています。
(※WordPressのバージョンによって構成が異なる場合があります。)

/wp-adminには以下の情報が含まれています。
- 投稿管理
- メディア管理
- テーマ管理
- プラグイン管理
- ユーザー管理
- 設定管理
記事やページを作成・編集・削除することができます。
また、タグやカテゴリの設定、投稿ステータスの変更なども行えます。
画像や動画などのメディアファイルをアップロードして利用することができます。
ウェブサイトの外観を変更するためのテーマを管理できます。
テーマの選択や設定、カスタマイズなどを行うことができます。
様々なプラグインを管理することができます。
プラグインをサイトに組み込むことで、機能拡張を行うことができます。
複雑な機能を手軽に組み込めるのはWordpressのメリットといえます。
複数のユーザーアカウントを作成し、管理者権限を分けることができます。
また、ユーザーの作成・編集・削除などの操作を行えます。
複数人で運営・開発していく際に役立ちます。
ウェブサイトの設定を変更するための管理を行えます。
サイトのタイトルや説明文、パーマリンク設定、言語設定、SEO設定などです。
これらの機能以外にもさまざまな機能があります。
必須
WordPressを利用する上で欠かせない機能の一つであり、ウェブサイトの運営を円滑に行うためには必須のツールなので理解しておきましょう。
/wp-includes
/wp-includesは、WordPressのコアファイルの1つであり、WordPressの基本機能を提供するために必要なファイルが含まれています。
wp-includesのディレクトリパスは、ルートディレクトリの直下です。
インストールされたばかりの場合、以下のような内容になっています。
(※WordPressのバージョンによって構成が異なる場合があります。)



/wp-includesにはとても多くのファイル・フォルダがあり、これらには以下の情報が含まれています。
- 基本機能
- ユーザー管理
- 投稿処理
- メディア管理
- テーマ管理
- プラグイン管理
- 国際化と翻訳
- セキュリティ機能
- データベース処理
データベースへのアクセス、セッション管理、HTTPリクエストの処理、WordPressのテンプレートタグ、などの基本的な機能です。
ユーザー認証、パスワードの暗号化、ユーザーの権限管理などの機能です。
例えば、user.phpファイルは、新しいユーザーの登録、既存のユーザーの編集、削除、権限の変更などの機能を提供します。
WordPressでの投稿処理を行うためのファイルです。
例えば、post.phpファイルは、新しい投稿の作成、既存の投稿の編集、削除、公開、非公開などの機能を提供します。
メディアファイルの処理、サムネイルの生成、画像のリサイズなどの機能です。
テーマファイルの読み込み、テーマの機能拡張、テーマに必要なテンプレートファイルの読み込みなどの機能です。
プラグインの読み込み、プラグインの有効化・無効化、プラグインが提供する機能の呼び出しなどの機能です。
翻訳ファイルの読み込み、多言語対応の機能などです。
たとえば、クロスサイトスクリプティング(XSS)攻撃の防止、SQLインジェクション攻撃の防止、CSRF攻撃の防止などの機能です。
WordPressのデータベース処理に必要なファイルです。
例えば、wpdb.phpファイルは、MySQLデータベースに対してクエリを実行するための関数を提供します。
これらの機能以外にも、/wp-includesにはさまざまな機能があります。
クロスサイトスクリプティング(XSS)攻撃とは
クロスサイトスクリプティング(XSS)攻撃は、ウェブアプリケーションのセキュリティ上の脆弱性を悪用して攻撃者が意図したコード(通常はJavaScript)を悪意のあるウェブページに埋め込むことで、ユーザーのブラウザ上で不正な動作を引き起こす攻撃手法です。
SQLインジェクション攻撃とは
SQLインジェクション攻撃とは、Webアプリケーションに対して不正なSQL文を注入することで、データベースに対する攻撃を行う手法です。
攻撃者は、Webアプリケーション上で入力可能なフォームやクエリパラメーターなどを悪用して、SQL文を改竄することで、データベース内のデータを操作したり、削除したり、盗んだりすることができます。
CSRF攻撃とは
CSRF(Cross-Site Request Forgery)攻撃は、Webアプリケーションの脆弱性の一つで、攻撃者が被害者をだまして意図しない操作を行わせる攻撃手法です。
攻撃の手順としては、攻撃者がユーザーに偽のリンクや画像を含むWebページを閲覧させることで、ユーザーが自身の意図しない操作を行わせるように誘導することが挙げられます。
編集は慎重に
WordPressを正常に動かす上で必要な機能が多数含まれているため、編集する際には注意が必要です。
/wp-content
ユーザーが追加したテーマやプラグイン、メディアファイルなどのデータが格納される場所です。
WordPressのアップデート時には、/wp-content以下のファイルはそのまま残されるため、カスタマイズしたテーマやプラグインが消えたり、編集内容が上書きされることはありません。
wp-contentのディレクトリパスは、ルートディレクトリの直下です。
インストールされたばかりの場合、以下のような内容になっています。
(※WordPressのバージョンによって構成が異なる場合があります。)

/wp-contentには、以下の情報が含まれています。
- テーマ管理
- プラグイン管理
- メディア管理
- カスタムコード管理
- 言語ファイル
- キャッシュ
WordPressのテーマファイルが格納されます。
ユーザーが自分で作成したテーマを配置することができます。
また、外部から入手したテーマファイルをインストールして使用することもできます。
WordPressのプラグインファイルが格納されます。
ユーザーが自分で作成したプラグインを配置することができます。
また、外部から入手したプラグインファイルをインストールして使用することもできます。
WordPressのメディアファイル(画像や動画など)が格納されます。
/wp-content/uploads以下に年月日ごとに分かれたフォルダが自動で作成され、そこにアップロードされたファイルが保存されます。
ユーザーが作成したカスタムコードを保存するためのディレクトリとして、wp-content/themes や wp-content/plugins の下に custom などのサブディレクトリを作成することがあります。
WordPressの翻訳ファイルが格納されます。
各言語ごとにフォルダが分かれており、翻訳ファイルが保存されています。
WordPressのキャッシュファイルが格納されます。
一度生成したページをキャッシュに保存しておくことで、再度アクセスされた際に高速に表示できるようにしています。
上記の機能以外にも、WordPressに関連するカスタマイズデータなどが格納されています。
編集は慎重に
WordPressをカスタマイズする上で、非常に重要なディレクトリのひとつであるため、誤って削除したり、編集したりしないよう操作する際は注意が必要です。
/wp-content/plugins
/wp-content/pluginsディレクトリ以下には、WordPressのプラグインが配置されます。
プラグインは、機能を拡張したり、新しい機能を追加することができます。
たとえば、WordPressの管理画面に新しいメニューを追加するプラグインなどがよく利用されます。
プラグインは、一般的にPHPスクリプトやCSS、JavaScriptなどのファイルから構成されます。
プラグインディレクトリ以下にあるすべてのプラグインを自動的に認識し、有効化することが可能になっており、プラグインを有効化することで新しい機能が追加されます。
/pluginsのディレクトリパスは、/wp-contentディレクトリの直下です。
インストールされたばかりの場合、以下のような内容になっています。
(※WordPressのバージョンによって構成が異なる場合があります。)

/pluginsには、以下の情報が含まれています。
以下が担っている主な機能です。
- WordPressの機能拡張
- カスタマイズ
- セキュリティ機能
- パフォーマンス向上機能
- フォーム作成機能
- SEO機能
- ギャラリー機能
標準機能として備わっていない機能を追加するためのプラグインが数多くあり、現在も新しいものが開発され続けています。
例えば、WordPressの投稿フォームにファイルアップロード機能を追加するプラグインや、投稿記事のスライドショー表示機能を追加するプラグインなどがあります。
テーマファイルを変更することでデザインをカスタマイズすることができますが、プラグインを使用することでWordPressの機能そのものをカスタマイズすることもできます。
例えば、コメント欄のカスタマイズを行うためのプラグインや、管理画面のカスタマイズを行うためのプラグインなどがあります。
セキュリティ対策を行うためのプラグインです。
不正ログイン対策を行うためのプラグインや、スパム対策を行うためのプラグインなどがあります。
ページ表示速度を向上するためのプラグインです。
キャッシュ機能を提供するプラグインや画像の圧縮機能を提供するプラグインなどがあります。
フォーム作成プラグインは、コンタクトフォームや予約フォームなど、サイトのフォームを簡単に作成することができます。
PHPの知識がなくても、直観的かつ迅速にフォームを実装できます。
SEOプラグインは、検索エンジン最適化(SEO)のための機能を提供します。
例えば、タイトルタグやメタタグの編集、XMLサイトマップの作成、キーワード分析などが挙げられます。
ギャラリープラグインは、写真や画像をサイトにアップロードして、美しく表示することができます。
スライドショー機能やカルーセル機能を備えたプラグインもあるので凝ったデザインを簡単に実現できます。
これらの機能以外にも、WordPressに関連するカスタマイズデータなどが格納されています。
プラグインはWordPressをカスタマイズする上で重要な役割を果たしており、必要なプラグインを選定することで、WordPressをより便利に快適に利用することができます。
何らかの理由で開発がストップされているものもありますので、定期的なアップデートがされているかを確認してから利用しましょう。
検索エンジン最適化(SEO)とは
SEO(Search Engine Optimization)は、ウェブサイトやコンテンツを検索エンジンに最適化するための機能です。
具体的には、検索エンジンがコンテンツを正しく理解し、ランキングアルゴリズムに従ってランキングするために必要な要素を最適化することが目的です。
XMLサイトマップとは
XMLサイトマップとは、Webサイトの全ページを一覧できるように、XML形式で作成したファイルのことです。
検索エンジンのクローラーがサイトマップを読み込み、Webサイト全体を理解することができます。
これによって、検索エンジンがWebサイト内のページを正確に把握し、検索結果に表示される可能性が高くなります。
/wp-content/themes
WordPressのテーマファイルが格納される場所です。
/themesのディレクトリパスは、/wp-contentディレクトリの直下です。
インストールされたばかりの場合、以下のような内容になっています。
(※WordPressのバージョンによって構成が異なる場合があります。)

/themesには、最初から「twentytwenty」というデフォルトテーマが3つ含まれています。
以下が担っている主な機能です。
- テーマのデザイン
- カスタマイズ
- プラグインとの連携
- ウェブサイトの機能拡張
- テンプレートファイルの追加
- カスタム投稿タイプやカスタムタクソノミーの追加
テーマファイルは、ウェブサイトの外観を定義するために使用されます。
テーマには、ウェブサイトの色、フォント、レイアウトなどを定義するHTML、CSS、JavaScript、PHPのファイルが含まれています。
また、テーマにはテンプレートファイルが含まれており、記事、ページ、アーカイブページなどの表示方法を定義することができます。
WordPressのテーマファイルは、PHPなどのプログラミングスキルを持っている人であれば自由に編集することができます。
これにより、テーマをカスタマイズして自分だけのデザイン・機能を作成することができます。
プラグインは、テーマファイルに定義されたテンプレートを使用して表示を変更することができます。
プラグインが提供する機能を使用して、ウェブサイトに様々な機能を追加することができます。
例えば、SNSのシェアボタンを追加するプラグインや、検索エンジン最適化のためのプラグインなどがあります。
WordPressのテーマファイルを変更することで、ウェブサイトの機能を拡張することができます。
例えば、カスタム投稿タイプを追加することで、ウェブサイトにニュース、イベント情報、ポートフォリオなどの新しいコンテンツを追加することができます。
テーマのディレクトリには、ページや投稿の表示をカスタマイズするためのテンプレートファイルが含まれています。
これらのファイルをカスタマイズすることで、サイトの表示方法を変更できます。
たとえば、投稿の表示を変更するには、single.php ファイルを編集します。
テーマには、カスタム投稿タイプやカスタムタクソノミーを追加することができ、 これらの機能を使用することで、サイトに独自の投稿タイプやカテゴリーを追加することができます。
たとえば、サイトにポートフォリオセクションを追加する場合、portfolioというカスタム投稿タイプを追加し、それに関連するカスタムタクソノミーが作成されます。
以上のように、テーマに関するすべてのファイルが格納される場所であり、ウェブサイトの外観や機能を定義するために重要な役割を果たしています。
カスタムタクソノミーとは
カスタムタクソノミーはWordPressにおいて、カスタム投稿タイプに紐付けられたカテゴリーやタグのような分類を管理するためのものを指します。
投稿に紐づくカテゴリーやタグは、WordPressに標準で用意された「カテゴリー」と「タグ」というタクソノミーの一種です。
しかし、投稿以外の情報を管理するカスタム投稿タイプに対しては、それに合わせて専用のカスタムタクソノミーを作成することができます。
たとえば、商品カタログを管理するためのカスタム投稿タイプには「商品カテゴリー」というカスタムタクソノミーを作成して、商品を分類することができます。
/wp-content/uploads
/wp-content/uploadsには、アップロードされたメディアファイルが保存されます。
/uploadsのディレクトリパスは、/wp-contentディレクトリの直下です。
/uploadsには、アップロードされたメディアファイルが保存されるためインストールした段階では何もありません。
以下が担っている主な機能です。
- メディアファイルの保存
- メディアファイルの表示
- メディアライブラリの管理
- キャッシュの保存
- メディアファイルのバックアップ
- ウェブサイトの速度改善
- テーマやプラグインの機能
アップロードされた画像、動画、音声ファイルなどのメディアファイルを保存します。
このディレクトリにファイルを保存し、それらのファイルにアクセスするためのURLを生成できます。
WordPressのコアファイルでは、メディアファイルのURLを自動生成する機能が備わっています。
この機能により、/wp-content/uploads以下に保存されたメディアファイルのURLを簡単に取得することができます。
サイトのテーマやプラグインで、このURLを利用してメディアファイルを表示することができます。
アップロードされたメディアファイルを管理するためのメディアライブラリを提供しています。
メディアライブラリは、アップロードされたファイルを検索し、表示し、必要に応じて編集することができます。
WordPressのキャッシュプラグインなどによって生成されたキャッシュファイルも、このディレクトリに保存されることがあります。
/wp-content/uploads以下に保存されたメディアファイルは、サイトのバックアップ時にも含まれるため、データの復元や移行がとても簡単になります。
バックアッププラグインを利用する場合は、このディレクトリもバックアップ対象に含めることが重要です。
ウェブサイトの速度を改善するための重要な役割を果たしています。
大量のメディアファイルを対象にする場合、それらのファイルを直接ウェブサイトにアップロードするとサーバーの負荷が増加し、ウェブサイトの速度が低下することがあります。
「/wp-content/uploads」ディレクトリにファイルをアップロードすると、それらのファイルはウェブサイトのコンテンツ配信ネットワーク(CDN)によって配信され、ウェブサイトのパフォーマンスが改善されます。
テーマやプラグインは、「/wp-content/uploads」ディレクトリにアップロードされたファイルにアクセスすることができます。
例えば、ウェブサイトにギャラリーやフォトブログを追加するためのプラグインを使用する場合、そのプラグインは「/wp-content/uploads」ディレクトリに保存された画像ファイルを使用してギャラリーを作成します。
以上のように、アップロードされたメディアファイルを保存し、ウェブサイトの速度改善やテーマやプラグインの機能に必要な役割を果たしています。
コンテンツ配信ネットワーク(CDN)とは
コンテンツ配信ネットワーク(Content Delivery Network、CDN)は、世界中に配置された多数のサーバーを利用して、ウェブサイトのコンテンツ(画像、動画、スタイルシート、JavaScriptファイルなど)を高速かつ効率的に配信するためのシステムです。
CDNを利用することで、ユーザーがウェブサイトにアクセスした際に、最も近くのサーバーからコンテンツが配信されるため、通信速度が高速化し、ウェブサイトの表示速度が向上するという利点があります。
また、CDNを利用することで、ウェブサイトのトラフィックが分散されるため、サーバーの負荷が軽減されるというメリットもあります。
/wp-content/mu-plugins
マルチサイト環境におけるプラグインのインストールや機能追加を行うためのディレクトリです。
/mu-pluginsのディレクトリパスは、/wp-contentディレクトリの直下です。
/mu-pluginsは、プラグインを保存するフォルダなのでインストールした段階では存在しません。
マルチサイト環境とは
WordPressにおけるマルチサイト環境とは、1つのWordPressインストールに複数のサイトを作成することができる機能です。
マルチサイト環境を構築することで、複数のサイトを効率的に管理することができます。
例えば、複数のブログを運営する場合、それぞれを別々にインストールするよりも、マルチサイト環境を構築することで、1つのWordPressインストールで全てのブログを管理できるようになります。
また、共通のテーマやプラグインを利用することもできます。
以下が担っている主な機能です。
- マルチサイト環境でのプラグイン管理
- サイト全体の機能追加
- セキュリティ対策
- コードの最適化
- テーマとの連携
マルチサイト環境では、各サイトに対して個別にプラグインをインストールすることができます。
しかし、/wp-content/pluginsディレクトリにプラグインをインストールすると、全てのサイトで同じプラグインが有効になってしまうので注意が必要です。
そこで、/wp-content/mu-pluginsディレクトリにプラグインをインストールすると、各々のサイトに対して個別にプラグインを有効にすることができます。
/ wp-content/mu-pluginsディレクトリにプラグインをインストールすると、各サイトの管理者が個別に有効化することなく、サイト全体に機能を追加することができます。
サイトのセキュリティを向上させるためのプラグインが多数含まれています。
例えば、「Brute Force Attack Protection」というプラグインは、ログイン画面に対する総当たり攻撃を防ぐために使用されます。
コードを最適化するためのプラグインが含まれています。
例えば、「Optimize Database after Deleting Revisions」というプラグインは、データベースを最適化して、サイトのパフォーマンスを向上させるために使用されます。
インストールされたプラグインは、WordPressのテーマとも連携することができます。
例えば、カスタム投稿タイプに対応するカスタムフィールドを追加するプラグインを作成し、/ wp-content/mu-pluginsディレクトリにインストールすることで、そのプラグインが利用できるテーマでカスタムフィールドを表示することができます。
以上のように、マルチサイト環境でのプラグイン管理やサイト全体の機能追加、テーマとの連携に必要な役割を果たしています。
ただし、/wp-content/mu-pluginsディレクトリにプラグインをインストールする場合は、管理者権限を持つユーザーのみが行うようにしてください。
また、必要な場合を除き、このディレクトリに不要なファイルを追加しないことを推奨します。
カスタムフィールドとは
カスタムフィールドとは、WordPressで記事やページ、カスタム投稿タイプなどに追加できる、ユーザーが定義したフィールドのことです。
WordPressにデフォルトで用意されているタイトルや本文などのフィールドに加えて、任意のフィールドを追加することができます。
例えば、記事に価格や在庫状況などの情報を表示する場合、カスタムフィールドを使用して追加することができます。
カスタムフィールドを使うことで、記事の情報を柔軟に管理できるようになります。
また、カスタムフィールドは、テーマファイルの中で値を表示することができるため、表示内容のカスタマイズにも有効です。
編集はFTPから
通常のプラグインとは異なり、管理画面から有効化・無効化することはできません。
プラグインの有効化・無効化は、FTPクライアントを使用して直接ファイルを操作する必要があります。

Lesson 2
Chapter 3
データベースの構成
Webアプリケーションやシステム開発において、データベースは欠かせない存在となっています。
膨大な量のデータを管理・保存することができるため、ビジネスの成長にともなうデータ量の増加にも柔軟に対応することができます。
データベースには、テーブル、カラム、データ型など、複数の構成要素が存在し、それらを組み合わせることでデータをまとめて管理することができます。
ここでは、データベースの基本的な構成要素について解説します。
wp_options
WordPressの設定を保存するためのデータベースのテーブルの1つで、WordPressの動作に重要な役割を果たしています。
"wp_options"テーブルは、WordPressのデータベースに接続しているMySQLやMariaDBなどのデータベース管理システムの中に含まれています。
主な機能について解説します。
- WordPressの基本設定
- テーマやプラグインの設定
- キャッシュやオプションの保存
- セキュリティ
wp_optionsテーブルには、WordPressの基本設定が保存されています。
たとえば、サイト名、サイトURL、デフォルトの投稿カテゴリー、投稿の形式、投稿の表示件数などが含まれます。
これらの設定は、WordPressの管理画面から変更できます。
カスタムヘッダー画像、カスタム背景画像の設定、Google Analyticsのトラッキングコードの設定、SEOプラグインの設定、お問い合わせフォームの設定などが含まれます。
これらの設定は、各テーマやプラグインの管理画面から変更できます。
使用するキャッシュの設定や、WordPressのウィジェットの設定、パーマリンクの設定、サイトの言語設定などが含まれます。
これらの設定は管理画面やプラグインの設定画面から変更できます。
ログインフォームのURLの変更、セキュリティプラグインの設定、パスワードのリセット方法の設定などが含まれます。
これらの設定は、管理画面やセキュリティプラグインの設定画面から変更できます。
wp_options テーブルには、それぞれの設定に対応する 「option_name」 と 「option_value」 の2つのカラムがあります。
option_nameとは
「option_name」は、コンピュータプログラムやシステムにおいて、オプションの名前や識別子を指す用語です。
一般的に、オプションはプログラムやシステムの設定や動作を制御するために使用されます。
設定ファイルやデータベースに保存される設定値を識別するためにオプション名が使用されることがあります。
option_valueとは
「option_value」は、コンピュータプログラムやシステムにおいて、オプションの値を指す用語です。
オプションはプログラムやシステムの設定や動作を制御するために使用されますが、その設定値を表すのが「option_value」です。
通常はオプション名(例:「option_name」)と対になって使用されます。
オプション名が設定値を識別するための名前や識別子であるのに対して、「option_value」はそのオプションの値を表します。
例えば、WordPressなどのCMSでは、「option_name」には設定項目の名称が格納され、それに対応する「option_value」には実際の設定値が格納されます。
また、一部のオプションは「autoload」というカラムによって、WordPressが起動する際に自動的に読み込まれ、サイトの読み込み速度を向上させています。
以上のように、基本設定やテーマやプラグインの設定、キャッシュやオプションの保存、セキュリティに関する設定など、WordPressの動作に不可欠な情報を保存するために利用されています。
トラッキングコードとは
トラッキングコードとは、ウェブサイトの訪問者の行動をトラッキングするために使用されるHTML、JavaScript、またはその他のコードのことを指します。
このデータを分析することで、訪問者の行動パターンや傾向を把握し、ウェブサイトの改善やマーケティング戦略の改善に役立てることができます。
wp_users
WordPressのデータベースの中で、ユーザーに関する情報を保存するためのテーブルの1つです。
"wp_users"テーブルは、WordPressのデータベースに接続しているMySQLやMariaDBなどのデータベース管理システムの中に含まれています。
主な機能について解説します。
- ユーザー情報の保存
- ユーザーロールの管理
- ユーザーセッションの管理
- ユーザー認証
ユーザー名、ID番号、ログインID、ユーザーの表示名(URLに使用される)、メールアドレス、ウェブサイトURL、プロフィール画像、ユーザーの登録日時、ユーザーアカウントを有効化するためのキーなどが含まれます。
これらの情報は、WordPressのログインやユーザーの管理に使用されます。
WordPressにログインすると、ユーザーセッションが開始され、ユーザーがサイトを閲覧する間はセッションが維持されます。
各ユーザーのセッション情報が保存され、ログアウトするか、セッションがタイムアウトするまで維持されます。
WordPressにログインすると、ユーザーセッションが開始され、ユーザーがサイトを閲覧する間はセッションが維持されます。
各ユーザーのセッション情報が保存され、ログアウトするか、セッションがタイムアウトするまで維持されます。
WordPressのパスワードは、ハッシュ関数で暗号化された値が保存されます。
ユーザーがログインすると、入力されたパスワードがハッシュ値と照合され、一致する場合にのみログイン処理が許可されます。
以上のように、ユーザーに関する情報の保存や管理、ユーザーセッションの管理、ユーザーの認証などの重要な機能に不可欠な情報を保存するために利用されています。
ユーザーロールとは
WordPressにおいて、ユーザーロールとは、ユーザーに対して与えられた権限の集合です。
WordPressでは、管理者(Administrator)編集者(Editor)投稿者(Author)寄稿者(Contributor)購読者(Subscriber)の標準的な5つのユーザーロールが用意されています。
必要に応じて、カスタムユーザーロールを追加することもできます。
ユーザーセッションとは
ユーザーセッションとは、ウェブサイトやアプリケーションを使用するユーザーの状態を管理するための仕組みです。
セッションとは、ユーザーがウェブサイトやアプリケーションにアクセスしてから離れるまでの間の一連の操作を指しており、
ユーザーがサイト上でどのような操作を行っているかを追跡し、セッションごとに独自のデータを保持することができます。
例えば、ユーザーがログインした場合、セッションデータにはそのユーザーの情報が含まれ、それ以降のページアクセスで認証情報を繰り返し入力する必要がなくなります。
wp_usermeta
各ユーザーのメタデータを保存するためのテーブルの1つです。
"wp_usermeta"テーブルは、WordPressのデータベースに接続しているMySQLやMariaDBなどのデータベース管理システムの中に含まれています。
ユーザーメタデータとは
ユーザーメタデータとは、ユーザーに関する情報を保存するための機能で、ユーザーがログイン情報やプロフィール情報を変更したりすると、それらの情報がデータベースに保存されます。
このとき、ユーザーに対して一意に付与されるID番号に関する情報も一緒に保存されます。
このID番号に関する情報がユーザーメタデータであり、プラグインやテーマなどから利用され、様々な機能を実現するために使われます。
例えば、ユーザーの投稿数やコメント数、アバター画像などがユーザーメタデータとして保存されます。
主な機能について詳しく解説します。
- ユーザープロフィールの拡張
- ユーザー設定の保存
- セキュリティ関連の情報の保存
- プラグインやテーマによるカスタマイズ情報の保存
- ユーザーキャッシュの保存
各ユーザーの追加情報を保存するために使用されます。
ユーザープロフィールに追加の項目を追加するためのAPIが提供されており、これによりユーザーが追加の情報を入力することができます。
例えば、会員制サイトのプラグインでは、ユーザーの有料会員期間や支払い情報などです。
これらの情報は、wp_usermetaテーブルに保存されます。
これには、通知設定、言語設定、ウィジェットの配置、ダッシュボードの表示項目などが含まれます。
これらの設定は、各ユーザーがWordPressを利用する際のユーザーエクスペリエンスを改善するために使用されます。
これには、二要素認証の設定、パスワードリセット用トークンなどが含まれます。
これらの情報は、セキュリティを向上させるために使用されます。
特定のプラグインによってユーザーごとに別々のカスタムフィールドが追加されたり、特定のテーマによってユーザーごとに異なるデザインが設定されたりすることがあります。
ユーザー情報をキャッシュして、パフォーマンスを向上させることができます。
以上のように、各ユーザーのメタデータを保存するためのテーブルであり、ユーザープロフィールの拡張、ユーザー設定の保存、セキュリティ関連の情報の保存、プラグインやテーマによるカスタマイズ情報の保存など、様々な機能に利用されます。
ユーザーエクスペリエンスとは
ユーザーエクスペリエンス(User Experience, UX)とは、ユーザーが製品やサービスを使用する際の全体的な体験や印象を指します。
これは、製品やサービスのデザイン、使いやすさ、機能性、視覚的なアピール、コンテンツなど、さまざまな要素に影響されます。
UXは、ユーザーが製品やサービスを使う上での感情的な反応や動機も含まれます。
良いUXは、ユーザーにとって使いやすく、満足度の高い体験を提供することを目的とします。
パスワードリセット用トークンとは
パスワードリセット用のトークンとは、ユーザーが自分のアカウントのパスワードをリセットするために使用されるランダムな文字列です。
ユーザーがパスワードをリセットする場合、システムはトークンを生成し、そのトークンを含むリセットリンクをユーザーに送信します。
ユーザーはリセットリンクをクリックして、システムにアクセスして、新しいパスワードを設定できます。
トークンはセキュリティ上の理由から有効期限が設定されており、期限が切れた場合、新しいトークンを要求する必要があります。
wp_postmeta
投稿やページなどの投稿タイプの各記事のメタデータを保存するためのテーブルの1つです。
"wp_postmeta"テーブルは、WordPressのデータベースに接続しているMySQLやMariaDBなどのデータベース管理システムの中に含まれています。
主な機能について解説します。
- カスタムフィールドの保存
- SEO情報の保存
- カスタム投稿タイプの拡張
- プラグインやテーマによるカスタマイズ情報の保存
カスタムフィールドを追加するためのAPIが提供されています。
これにより、各記事に追加の情報を設定することができます。
例えば、記事に付随する画像のID、価格、評価などがカスタムフィールドとして追加されることがあります。
検索エンジン最適化(SEO)を目的として、各記事のメタ情報(タイトルタグ、メタデスクリプションなど)がwp_postmetaテーブルに保存されることがあります。
SEOプラグインなどを使用して、これらの情報を自動的に生成することができます。
カスタム投稿タイプを追加することができます。
これにより、各記事に付随する情報を追加することができます。
例えば、商品カタログを作成する場合、各商品に付随する価格、在庫数、色などがカスタム投稿タイプとして追加されることがあります。
プラグインやテーマが、各記事に付随する情報を追加することがあります。
例えば、特定のプラグインによって、各記事に対する評価やコメント数、テーマによって、各記事の表示方法がカスタマイズされることがあります。
以上のように、各記事のメタデータを保存するためのテーブルであり、カスタムフィールドの保存、SEO情報の保存、カスタム投稿タイプの拡張、プラグインやテーマによるカスタマイズ情報の保存など、様々な機能に利用されます。
APIとは
APIとは、Application Programming Interface(アプリケーションプログラミングインターフェース)の略称で、あるアプリケーション(ソフトウェア)が別のアプリケーションと情報をやりとりするための仕様やインターフェースのことを指します。
具体的には、APIによって、あるアプリケーションが提供する機能やデータに、別のアプリケーションからアクセスすることができます。
APIは、Webサービスやアプリケーション間の連携、また、クラウドサービスやモバイルアプリケーションの開発などに利用されます。
wp_comments
各記事に対するコメントを保存するためのテーブルの1つです。
"wp_comments"テーブルは、WordPressのデータベースに接続しているMySQLやMariaDBなどのデータベース管理システムの中に含まれています。
主な機能について解説します。
- コメントの保存
- コメントの承認・非承認の管理
- コメントの編集・削除
- コメントのスパム管理
- コメントの表示設定
各記事に対するコメントが、wp_commentsテーブルに保存されます。
保存される項目は、コメントの内容、投稿日時、投稿者名、メールアドレス、ウェブサイトなどです。
また、承認ステータスや削除ステータスなど、コメントに関する情報も保存されます。
コメントを承認、または非承認にすることができます。
承認されたコメントは、WordPressサイト上に表示されますが非承認のコメントは表示されません。
コメントの承認・非承認は、wp_commentsテーブルの「comment_approved」フィールドに保存されます。
管理画面からコメントの編集・削除が可能です。
編集はwp_commentsテーブルの「comment_content」フィールドを更新することで行われ、削除はwp_commentsテーブルの「comment_approved」フィールドを「trash」に更新することで行われます。
コメントスパムを自動的に検出するスパムフィルターが提供されています。
スパムフィルターによって検出されたコメントは、自動的に「スパム」として扱われ、wp_commentsテーブルの「comment_approved」フィールドに「spam」が保存されます。
例えば、特定のプラグインによって、各記事に対する評価やコメント数、テーマによって、各記事の表示方法がカスタマイズされることがあります。
コメントの表示設定を管理画面から変更することができます。
例えば、新しいコメントが投稿されたときに通知するかどうか、コメントの表示順序を昇順または降順にするかどうかなどが設定できます。
以上のように、各記事に対するコメントを保存するためのテーブルであり、コメントの保存、承認・非承認の管理、編集・削除、スパム管理、表示設定など、様々な機能に利用されます。
スパムとは
「スパム」とは、大量の広告や迷惑メールなど、ユーザーに対して不要かつ無駄な情報を無差別に送りつけることを指します。
スパムは、インターネット上のあらゆる場所で問題となっており、メールだけでなく、SNS、ブログのコメント欄、フォーラム、チャットなどでも発生します。
スパムは、ユーザーの迷惑となるだけでなく、悪意のあるコンテンツが含まれる場合もあり、セキュリティ上のリスクとなることもあります。
wp_commentsmeta
各コメントに関するメタ情報を保存するためのテーブルの1つです。
"wp_commentsmeta"テーブルは、WordPressのデータベースに接続しているMySQLやMariaDBなどのデータベース管理システムの中に含まれています。
主な機能について解説します。
- コメントのメタ情報の保存
- コメントの検索・分類
- プラグイン・テーマによるカスタマイズ
- コメントの管理
各コメントに対してメタ情報を保存することができます。
例えばコメントの投稿者のIPアドレス、ブラウザの種類、操作システム、投稿されたURLなどが含まれます。
これらの情報は、コメント自体の内容以外の情報を保存するために利用されます。
コメントの検索や分類を行うために、コメントに対するメタ情報を利用することができます。
例えば、あるIPアドレスから投稿されたコメントを検索する場合、wp_commentsmetaテーブルを利用して検索することができます。
プラグインやテーマによって、コメントのメタ情報を利用することがあります。
例えば、特定のブラウザから投稿されたコメントにスタイルを適用するプラグインや、特定のURLから投稿されたコメントを非表示にするプラグインなどがあります。
管理画面から、コメントのメタ情報を表示・編集することができます。
例えば、特定のIPアドレスから投稿されたコメントを一括で削除することができます。
以上のように、各コメントに関するメタ情報を保存するためのテーブルであり、コメントのメタ情報の保存、検索・分類、プラグイン・テーマによるカスタマイズ、コメントの管理など、様々な機能に利用されます。
IPアドレスとは
IPアドレスとは、コンピューターネットワーク上で通信を行うために付与される一意の識別子で、インターネット上では、インターネットプロトコル(IP)を使って通信を行うために必要な情報です。
IPアドレスは、通信するコンピューターの識別に使われます。
IPv4とIPv6があり、IPv4は32ビットの数値で表され、通常「xxx.xxx.xxx.xxx」の形式で表されます。
IPv6は128ビットの数値で表され、通常「xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx」の形式で表されます。
wp_terms
カテゴリーやタグ、カスタムタクソノミーなどのターム(用語)を保存するためのテーブルの1つです。
"wp_terms"テーブルは、WordPressのデータベースに接続しているMySQLやMariaDBなどのデータベース管理システムの中に含まれています。
主な機能について解説します。
- タクソノミーの保存
- タームの検索・分類
- プラグイン・テーマによるカスタマイズ
- タームの管理
カテゴリーやタグ、カスタムタクソノミーなどのタームを利用して、投稿やページを分類することができます。
wp_termsテーブルは、これらのタームを保存するために利用されます。
タームを利用して投稿やページを分類することができます。
例えば、特定のカテゴリーに属する投稿を検索する場合、wp_termsテーブルを利用して検索することができます。
プラグインやテーマによって、タームを利用してカスタマイズすることがあります。
例えば、特定のカテゴリーに属する投稿に対してスタイルを適用するプラグインや、特定のタグが付けられた投稿を自動で非表示にするプラグインなどがあります。
管理画面から、タームを追加・編集・削除することができます。
以上のように、カテゴリーやタグ、カスタムタクソノミーなどのタームを保存するためのテーブルであり、タームの保存、検索・分類、プラグイン・テーマによるカスタマイズ、タームの管理など、様々な機能に利用されます。
タームとは
WordPressにおいて、タームとは、カスタムタクソノミー(カスタム分類)や既存のタクソノミー(分類)に属する個々の項目を指します。
例えば、「カテゴリー」タクソノミーには「スポーツ」「音楽」「映画」などのカテゴリータームが含まれます。
また、「タグ」タクソノミーには「WordPress」「SEO」「ブログ」などのタグタームが含まれます。
タームは、それぞれが一意のIDを持ち、WordPressのデータベースに保存されます。
タームを使うことで、記事やページなどのコンテンツに対して、分類やキーワード付けをすることができます。
wp_termmeta
wp_termmetaテーブルは、ターム (カテゴリーやタグなど) に関連付けられたメタデータを格納するために使用されます。
"wp_termmeta"テーブルは、WordPressのデータベースに接続しているMySQLやMariaDBなどのデータベース管理システムの中に含まれています。
このテーブルは、WordPressのバージョン4.4で導入されました。
各タームに対して、追加のメタデータ (たとえば、カスタムフィールド) を保存するために使用されます。
wp_termmeta テーブルには、以下のカラムが含まれています。
- meta_id: メタデータのID
- term_id: メタデータが関連付けられているタームのID
- meta_key: メタデータのキー (たとえば、"color"など)
- meta_value: メタデータの値

Lesson 2
Chapter 4
基本的な処理の流れ
Webアプリケーションやウェブサイトを閲覧する際、ブラウザからWebサーバーに対して送信されるデータがあります。
このデータのことをHTTPリクエストと呼びます。
HTTPリクエストは、ユーザーがWebサイトにアクセスした際にブラウザがWebサーバーに対して送信する情報であり、その中にはどのページにアクセスするのかや、どのようなデータを送信するのかといった情報が含まれています。
ここでは、HTTPリクエストについて詳しく解説します。
HTTPリクエスト
HTTPメソッド、URL、HTTPバージョン、リクエストヘッダー、リクエストボディで構成されています。
各項目について解説しましょう。
HTTPメソッド
主に代表的なHTTPメソッドは、GET、POST、PUT、DELETEなどがあります。
- GET
- POST
- PUT
- DELETE
リソースの取得を要求します。
サーバーからデータを取得するために使用されます。
データの送信を要求します。
データをサーバーに送信して新しいリソースの作成や処理を行うために使用されます。
リソースの作成または更新を要求します。
指定されたURIにリソースを保存するために使用されます。
リソースの削除を要求します。
指定されたURIにあるリソースを削除するために使用されます。
URL
URL(Uniform Resource Locator)は、ウェブ上のリソース(Webページ、画像、ファイルなど)のアドレスを表すために使用される文字列です。
要求されたリソースの場所を示しており、スキーム、ホスト、ポート、パス、クエリストリングで構成されています。
各項目について解説しましょう。
- スキーム(scheme)
- ホスト(Host)
- ポート
- パス(path)
- クエリストリング
URI(Uniform Resource Identifier)の中で、リソースにアクセスするための規格を表す部分のことです。
HTTPやHTTPS、FTP、telnet、fileなどが一般的なスキームの例です。
ホスト(Host)は、インターネット上で通信を行うコンピュータやサーバのことを指します。
Webサイトの場合、ホストとはWebサイトが公開されているサーバのことです。
ポートは、コンピューターネットワークにおけるプログラムやサービスを特定するための番号です。
IPアドレスとポート番号の組み合わせが、特定のサービスへのアクセス先を示すことになります。
HTTPリクエストにおけるパス(path)は、リクエストされたリソースの識別子を示します。
一般的に、Webサイト上でのパスは、サイトのディレクトリ階層に対応しています。
クエリストリングとは、URLの末尾に「?」を付け、続けてパラメーター名とその値を指定することで、Webアプリケーションに対してデータを渡すための方法です。
HTTPバージョン
HTTP(Hypertext Transfer Protocol)は、ウェブブラウザとウェブサーバーの間で通信するための規格です。
HTTPにはいくつかのバージョンが存在します。
以下は、代表的なHTTPバージョンのリストです。
- HTTP/1.0
- HTTP/1.1
- HTTP/2
- HTTP/3
初期のHTTPバージョンで、1996年に公開されました。
このバージョンでは、1つの接続ごとに1つのリクエストとレスポンスが処理されます。
1997年に公開されたHTTPの改訂版です。
このバージョンでは、複数のリクエストを同時に送信したり、複数のリクエストを1つの接続で処理することが可能になりました。
2015年に公開されたHTTPの次世代バージョンで、HTTP/1.1の改善点を基にしており、性能と効率が向上しています。
サーバープッシュによってクライアントとサーバーの間でのやり取り回数を削減し、ウェブページの読み込み時間を短縮することを実現しました。
2020年に公開された最新のHTTPバージョンです。
HTTP/2とは異なる転送規格であるQUICを使用しています。
QUICを使用することで、パフォーマンスの向上やコネクションの確立の高速化が期待されています。
QUICとは
QUIC(Quick UDP Internet Connections)は、インターネット上の通信規格の1つです。
低遅延で安全な接続を提供することを目的として開発されました。
また、通信の遅延を削減しており、ウェブページやアプリケーションの読み込み時間が短縮されています。
各バージョンは、前のバージョンとの互換性を保ちながらパフォーマンスやセキュリティの改善を実現するために開発されてきました。
リクエストヘッダー
リクエストヘッダーは、リクエストに関する追加の情報を提供しており、 これらにはユーザーエージェント、Accept-Language、Cookieなどが含まれます。
各項目について解説しましょう。
- ユーザーエージェント
- Accept-Language
- Cookie
ウェブブラウザーなどのクライアントアプリケーションがウェブサーバーに接続する際に、そのクライアントアプリケーション自身の種類やバージョンなどの情報を伝えるための文字列です。
この情報はHTTPリクエストのヘッダーに含まれており、ウェブサーバー側はこの情報を利用して、クライアントが利用している機種やOS、ブラウザーの種類やバージョンなどを判別することができます。
また、この情報を利用して、ウェブサイトの表示やコンテンツの配信を最適化することができる場合もあります。
Accept-Languageは、クライアントが受け入れ可能な言語を伝えるHTTPヘッダーフィールドの一つです。
Webサーバーは、このヘッダーを使用して、リクエストを送信するクライアントが好む言語を判断し、適切な言語でコンテンツを提供することができます。
Cookie(クッキー)とは、ウェブサイトがユーザーのブラウザに保存する小さなデータのことを指します。
Cookieは、サイト訪問履歴や言語設定、ログイン情報、ショッピングカート内の商品情報など、ユーザーの情報を保存するために使用されます。
リクエストボディ
リクエストボディ(Request Body)は、HTTPリクエストで送信されるデータの一部です。
主にPOSTやPUTメソッドといったHTTPメソッドで使用されます。
リクエストボディは、サーバーに対して送信するデータや情報を含むために使用されます。
WebアプリケーションとWebサーバー間の通信で非常に重要な役割を果たしており、正しく処理されない場合、Webサイトの機能性に問題が発生する可能性があります。
URLルーティング
URLルーティングは、Webアプリケーションの機能のうち、どのリクエストにどのコードを実行するかを決定するための方法です。
Webアプリケーションでは、URLルーティングによってリクエストされたURLを解析し、適切なコントローラーとアクションを実行してWebページを生成します。
URLルーティングにはいくつかの方法がありますが、一般的には以下の2つがあります
- 静的ルーティング
- 動的ルーティング
URLと実際のファイルパスとのマッピングを定義する方法です。
URLルーティングを実装するために、Webアプリケーションは特定のURLがリクエストされた場合に実行されるコントローラーやアクションの場所を示すために、ルーティングを定義します。
一般的に、静的ルーティングは小規模なWebアプリケーションに適しています。
リクエストされたURLを解析し、リクエストされた処理を識別するためのプログラムを使用する方法です。
一般的に、動的ルーティングは大規模なWebアプリケーションに適しています。
動的ルーティングを使用する場合、リクエストされたURLに基づいてどのコントローラーとアクションを実行するかを決定するためのカスタムコードを作成する必要があり、 一般的にこのカスタムコードはURLパターンを解析し、適切なコントローラーとアクションを決定するために使用されます。
URLルーティングは、Webアプリケーションの性能や保守性に大きな影響を与えるため、適切に設計することが重要です。
良好なURLルーティングにより、Webアプリケーションの開発、保守、拡張が容易になり、ユーザーエクスペリエンスが向上することが期待されます。
マッピングとは
マッピングとは、データや情報を可視化するために、対象の要素を特定の形式に変換することを指します。
主に地図やグラフ、チャートなどを作成するために使用されます。
例えば、地図の場合は、住所や緯度経度などの位置情報を地図上に表示するために、データを地図の座標系にマッピングすることが必要です。
また、データベースのテーブルをオブジェクト指向プログラムで扱いやすい形式に変換することも、マッピングの一例です。
メインクエリ
メインクエリは、現在表示されているページのコンテンツを取得するために必要なSQLクエリのことです。
SQLクエリとは
SQLクエリとは、リレーショナルデータベース管理システム(RDBMS)であるMySQL、PostgreSQL、Oracle、Microsoft SQL Serverなどで使用される、データベースへの問い合わせのための言語です。
WordPressのページロード時には、メインクエリが実行されます。
どのページを表示するかを決定する際にparse_requestフィルターフックを使用して現在のリクエストを解析し、メインクエリオブジェクトを作成します。
フックとは
フック(hook)は、WordPressのコアやプラグイン、テーマなどが提供する特定の箇所に、カスタムの処理を挿入できる仕組みです。
parse_requestフィルターフックとは
parse_requestフィルターフックは、HTTPリクエストを受信し、WordPressがリクエストされたコンテンツを決定するために使用されるフックです。
このフックは、リクエストが処理される前に呼び出され、リクエストを解析するために使用できます。
このフックを使用すると、特定の条件に基づいてリクエストを解析し、WordPressが正しいページを表示できるようにコントロールすることができます。
このオブジェクトにはページの投稿、タイプ、カテゴリー、タグ、ページ番号などの情報が含まれています。
メインクエリは、WP_Queryクラスを使用して実行されます。
このクラスはデータベースからデータを取得するための様々なパラメータを設定することができます。
例えば、ページ番号、投稿数、投稿タイプ、投稿状態、カテゴリー、タグなどがあります。
また、pre_get_postsフィルターフックを使用して、メインクエリに対して追加のパラメータを設定することもできます。
このフィルターフックを使用すると、テーマやプラグインなどでカスタマイズされたコンテンツを表示するための条件を追加することができます。
メインクエリが実行されると、WordPressは、クエリに応じて必要な投稿やページなどのデータを取得し、テンプレートファイルを使用して、それらのデータを表示します。
テンプレートファイルは、get_template_partやget_header、get_footerなどの関数を使用し、複数のテンプレートファイルを組み合わせて作成することができます。
テンプレート
テンプレートとはWordPressのテーマ内に含まれるファイルのことで、ウェブページの表示やコンテンツの表示方法を決定します。
WordPressがページを生成する際に自動的に使用され、表示されるウェブページの種類によって異なるテンプレートが適用されます。
例えば、投稿ページの表示には、シングル投稿用のテンプレートファイルが使用されます。
このテンプレートファイルは、投稿のタイトル、本文、カテゴリー、タグなどの情報を表示する方法を定義します。
また、ホームページの表示には、ホームページ用のテンプレートファイルが使用されます。
テンプレートは、以下のような標準的なファイル名で提供されます。
- header.php:ウェブページのヘッダー部分を表示するためのテンプレートファイルです。
- footer.php:ウェブページのフッター部分を表示するためのテンプレートファイルです。
- sidebar.php:サイドバーを表示するためのテンプレートファイルです。
- index.php:投稿や固定ページなど全てのウェブページに共通する要素を表示するためのデフォルトのテンプレートファイルです。
- single.php:シングル投稿用のテンプレートファイルです。
- page.php:固定ページ用のテンプレートファイルです。
- archive.php:アーカイブページ用のテンプレートファイルです。
- category.php:カテゴリーページ用のテンプレートファイルです。
- tag.php:タグページ用のテンプレートファイルです。
- search.php:検索結果ページ用のテンプレートファイルです。
- 404.php:404エラーページ用のテンプレートファイルです。
これらのテンプレートファイルをカスタマイズすることで、ウェブページのデザインや表示方法を変更することができます。
また、独自のテンプレートファイルを作成することでもできます。

Lesson 2
Chapter 5
フックの仕組み
WordPressを含む多くのWebアプリケーションには、フックと呼ばれる機能が存在します。
フックは、アプリケーションの基本機能に対してカスタマイズを加えることができる仕組みであり、プログラマーによる拡張性を高める重要な要素となっています。
アプリケーションのカスタマイズ用コードを実行するためのポイントを提供することで、ユーザーが簡単にアプリケーションの動作を変更することができます。
ここでは、フックの仕組みについて解説します。
アクションフックとフィルターフック
アクションフックとフィルターフックは、プログラマがWordPressの様々な機能をカスタマイズするための主要な仕組みです。
これらは、プログラムの特定の時点で実行される独自の関数を登録することによって機能します。
- アクションフック
- フィルターフック
アクションフックは、WordPressの特定のイベントが発生した際に、プログラマが自分自身の関数を実行することを可能にします。
例えば、記事が公開されたときに、関数が実行されるようにすることができます。
WordPressには、100種類以上のアクションフックが組み込まれており、開発者はこれらを使用して、カスタムテーマやプラグインの開発時に、WordPressの基本機能を拡張することができます。
フィルターフックは、WordPressの機能をカスタマイズするためにデータを変更することができる仕組みです。
フィルターフックは、特定の値をフィルタリングすることができ、データを変更することができます。
WordPressには、100種類以上のフィルターフックが組み込まれており、開発者はこれらを使用して、WordPressの基本機能をカスタマイズすることができます。
アクションフックの記述例
php
function my_custom_function() {// 実行したい処理を記載}
add_action( 'save_post', 'my_custom_function' );
上記の例では、'save_post'というイベントが発生した時に、'my_custom_function'という関数が実行されます。
この場合、記事が保存されたときに関数が実行されるようになります。
フィルターフックの記述例
php
function my_custom_function( $content ) {// 実行したい処理を記載return $content;}
add_filter( 'the_content', 'my_custom_function' );
上記の例では、'the_content'というフィルターが適用された場合、'my_custom_function' 関数が実行されます。
この場合、$content変数が引数として渡され、関数はその値を変更して返します。
'the_content'フィルターが適用された場合、表示される投稿のコンテンツを変更することができます。
