WordPressで家庭教師・学習支援のマッチングサイトを作る方法|科目別検索・体験授業の予約
家庭教師を探すとき、保護者が最後に迷うのは「この先生にうちの子を任せられるか」という一点です。料金表や科目一覧を並べただけのサイトでは、この判断ができません。学歴や指導歴、これまでの合格実績が見えて、そのうえで無料体験授業を予約できる。そういう仕組みをWordPressで作りたい方に向けて、実際にデモサイト「TutorLink」を構築しながら手順を解説します。
なお、本記事で使用している画面キャプチャは2026年7月時点のものです。
この記事を読むと、次のことがわかります。
- 家庭教師・学習支援マッチングサイトに必要な機能を整理できます
- WordPressで実現する際の選択肢と、それぞれの向き・不向きがわかります
- MatchLayerを使って科目別検索・体験授業予約付きのマッチングサイトを構築する手順を追えます
家庭教師・学習支援マッチングサイトに必要な機能
まず、このタイプのサービスに求められる機能を整理します。教育分野では「誰が教えるのか」が選定の決め手になるため、講師個人の情報をどこまで見せられるかが設計の中心になります。
| 機能 | 内容 |
|---|---|
| 講師登録・プロフィール | 最終学歴・出身大学・指導歴・合格実績を講師自身が登録できる |
| 授業プランの掲載 | 「中学数学 定期テスト対策」など、指導内容ごとにプランを掲載できる |
| 学年×科目での検索 | 小学生の算数、高校生の英語といった組み合わせで絞り込みできる |
| 授業スタイルの絞り込み | 対面・オンライン・どちらも可、の条件で探せる |
| 体験授業の予約 | 空き日時をカレンダーで管理し、保護者が希望日を選んで申し込みできる |
| 事前メッセージ | 体験授業の前に、日程や指導の要望をやり取りできる |
| 繰り返し申込み | 体験授業のあとに本契約の申込みができる(同じプランへ再度申し込める) |
| エリアでの絞り込み | 対面指導に対応している地域で探せる |
| レビュー機能 | 受講後に評価を残し、次の保護者の判断材料にできる |
| 会員登録フォーム | 講師側・保護者側でロールを分けて登録できる |
このうち「決済機能」については、MatchLayerは現時点で内蔵していません。授業料のやり取りは別途Stripeなどの外部サービスと組み合わせるか、サービス外で対応する形になります。
WordPressで実現する方法(選択肢を比較)
WordPressでマッチングサイトを作る際の選択肢は大きく3つあります。
予約プラグインをベースにする方法
BookingやAmeliaといった予約系プラグインは、カレンダーからの日時予約が得意です。ただし想定しているのは「店舗のメニューを予約する」体験で、講師一人ひとりのプロフィールや実績を見比べて選ぶという導線は持っていません。講師検索とプロフィール表示は、別途作り込むことになります。
汎用フォーム・ディレクトリプラグインをベースにする方法
Gravity FormsやBusiness Directoryといったプラグインは柔軟性が高く、講師の登録フォームや一覧表示を独自に設計できます。ただし「マッチング」の概念(申込み・承認・メッセージのやり取り)と予約カレンダーはゼロから実装する必要があり、開発コストがかかります。
マッチング特化プラグインを使う方法
MatchLayerはマッチングサイトに特化したWordPressプラグインで、リスティング管理・カレンダー予約・メッセージ・レビュー・カスタムフィールドなどの機能を最初から持っています。「人のマッチング」プリセットを選ぶだけで、講師と保護者の分離登録に対応した土台が整います。コーディングなしで動くサイトを短期間で立ち上げたい場合に向いています。
MatchLayerでTutorLinkを構築する手順
ここからは実際の構築手順を追います。今回作るデモサイト「TutorLink」は、講師側と保護者・生徒側に分かれた会員登録、学年×科目での絞り込み、カレンダーからの体験授業予約を備えたマッチングサービスです。
ステップ1:サイトジャンルに「人のマッチング」を選ぶ
MatchLayerをインストールしたら、最初にサイトジャンル設定からプリセットを選びます。管理画面の「サイトジャンル設定」にアクセスし、「人のマッチング」を選んで適用します。

家庭教師は「授業を予約する」サービスでもありますが、実際に保護者が選んでいるのは講師という人です。実績や指導歴で比較して選ぶ導線を主役にしたいので、人のマッチングを起点にしました。カレンダー予約はこのあとのステップで追加します。
ステップ2:学年×科目のカテゴリを階層で設定する
「カテゴリ設定」メニューから、カテゴリを追加します。今回は学年を親カテゴリ、科目を子カテゴリにした階層構成にしました。
- 小学生(算数/国語/英語/全科目対応)
- 中学生(数学/英語/国語・理社/高校受験対策)
- 高校生(数学/英語/理科(物理・化学)/大学受験対策)
- その他(プログラミング/英会話(日常)/資格・検定対策)
親カテゴリを指定するには、カテゴリ作成時に「親カテゴリー」のプルダウンから選ぶだけです。

同じ「英語」でも小学生と高校生では指導内容がまったく違うので、学年で親を分けておくと、あとから科目を足すときも整理しやすくなります。一覧画面右端の「表示順」を設定すると、小学生→中学生→高校生の学年順に並べ替えられます。
ちなみに最初は科目だけをフラットに並べていて、「英語」という同名のカテゴリが3つできてしまい、自分でもどれがどれだかわからなくなりました。学年を親にして作り直したら、それだけで見通しがよくなっています。作り始める前に、親をどの軸にするかだけは決めておいたほうが早いです。
ステップ3:カスタムフィールドを追加する
「登録フォーム設定」からプロフィール用・授業プラン用のカスタムフィールドを追加します。
講師(提供者)のプロフィール用に、次の6項目を設定しました。
- 最終学歴(セレクトボックス:高校・専門学校・大学・大学院/必須)
- 出身大学・学部(テキスト)
- 指導歴(セレクトボックス:1年未満〜5年以上/必須)
- 指導スタイル(セレクトボックス:対面のみ・オンラインのみ・どちらも対応可/必須)
- 対応可能エリア(テキスト)
- 指導実績・合格実績(テキストエリア)
保護者(利用者)側には「お子さまの学年」と「ご相談内容・目標」を設定しました。

「適用ロール」の列で提供者のみ・利用者のみを切り替えられるので、講師と保護者で入力してもらう項目を分けられます。
続いて「授業プラン用」タブに切り替えて、プラン固有のフィールドも追加します。
- 指導科目・内容(テキスト/必須)
- 対象学年(セレクトボックス:小学生〜大人・社会人/必須)
- 授業スタイル(セレクトボックス:対面・オンライン・どちらも可/必須)
- 1回の授業時間(セレクトボックス:45分〜120分/必須)
- 無料体験授業(セレクトボックス:あり・なし/必須)
- 得意な指導領域・アピールポイント(テキストエリア)

このうち「対象学年」「授業スタイル」「無料体験授業」は検索対象に設定しました。検索対象にしたフィールドは、あとで見る授業プラン一覧の絞り込み条件として自動的に表示されます。
ステップ4:一般設定を調整する
「一般設定」→「サイト全体」タブで、呼称と機能を変更します。
- リスティング呼称を「授業プラン」に変更します(管理画面もフロントエンドも、この呼称で表示されるようになります)
- ユーザーモードは「分離モード(提供者/利用者)」のままにします(講師と保護者は役割が異なるためです)
- 都道府県機能を有効にします(対面指導のエリアで絞り込めるようになります)

都道府県機能を有効にすると、管理画面に「都道府県設定」メニューが追加されます。ここでは地方・都道府県ごとに表示・非表示を切り替えられます。TutorLinkはオンライン指導で全国に対応する想定なので、どの地方も非表示にせず、47都道府県すべてを選べる状態にしました。

対面指導だけで特定の地域に絞って運営する場合は、対応していない地方に「非表示」のチェックを入れると、登録フォームと検索の選択肢がその範囲だけに絞られます。
次に「マッチング」タブに移り、家庭教師サービスに合った設定にします。
- メッセージ送信タイミングを「成立前から可」に変更します
- 重複申込みを「許可する(何度でも申込み可能)」に変更します
- カレンダー・予約機能にチェックを入れて有効にします

重複申込みを「許可する」にしたのは、体験授業と本契約という2段階の申込みを想定しているからです。「許可しない」にすると同じ授業プランへの申込みが一度きりになり、体験授業を受けたあとに本契約を申し込めなくなってしまいます。メッセージを「成立前から可」にしたのも同じ理由で、体験授業の日程や指導の要望を、申込みの段階からやり取りできるようにするためです。
ステップ5:トップページのテキストを設定する
「トップページ設定」でブランドカラーとヒーロー画像、それに各セクションのテキストを設定します。

プリセットを適用した直後は「案件を探す」「提案を送る」といった汎用的な文言が入っています。ここを「先生を探す」「体験授業を申し込む」「授業スタート」のように書き換えると、サイトの用途が読み手に伝わるようになります。「MatchLayerの使い方」という見出しも、サイト名を使った「TutorLinkの使い方」に変更できます。
ステップ6:講師の授業プランを登録する
設定が完了したら、講師のアカウントで授業プランを登録します。「授業プランを掲載する」リンクから登録フォームにアクセスします。

対応エリアは、カテゴリではなく「都道府県を選択」ボタンから設定します。地方ごとにチェックボックスが並んだ選択画面が開くので、複数の都道府県にまたがって対応している場合もまとめて選べます。
エリアをカテゴリで代用しない理由は、学年や科目という分類と地域という分類が同じ階層に混ざってしまうからです。カテゴリが「小学生/中学生/東京都/神奈川県」と並ぶと、あとから科目を追加するときも、並び順を整えるときも扱いづらくなります。
登録した授業プランは、マイページの「授業プラン管理」タブで一覧できます。

ステップ7:体験授業の予約枠を設定する
予約枠の設定は、授業プランの登録フォームとは別の画面で行います。マイページの一覧から「カレンダー設定」ボタンをクリックすると、モーダルウィンドウが開きます。

設定項目は次の通りです。
| 項目 | 内容 |
|---|---|
| 営業開始・終了 | 授業を受け付ける時間帯(例:17:00〜22:00) |
| 枠の長さ(分) | 1回の授業時間に合わせます(例:120分) |
| 在庫 | 同じ枠で受け付ける件数。1対1の個別指導なら「1」にします |
| 営業曜日 | 授業ができる曜日にチェックを入れます |
| 休止開始・終了 | 受付しない時間帯(任意) |
設定を保存すると、モーダル下部の月間カレンダーに空き枠が生成されます。この設定をして初めて、フロントの詳細ページに予約可能な日時が表示されます。授業プランを登録しただけでは予約枠は作られません。
在庫を「1」にすると、その枠は最初の1件を受け付けた時点で満席になります。1対1の個別指導では、この設定が二重予約を防ぐ役割を果たします。グループ指導のように複数人を受け入れるプランでは、人数に合わせて在庫を増やします。
完成したデモサイトの確認
すべての設定が終わったトップページがこちらです。

授業プラン一覧では、ステップ3で検索対象に設定したフィールドが絞り込み条件として並びます。キーワード・カテゴリ・都道府県に加えて、指導科目・対象学年・授業スタイル・無料体験授業で条件を組み合わせられます。

「オンラインで、無料体験がある、高校生向けの英語」といった条件で探せるようになります。
各授業プランの詳細ページには、説明文の下にカスタムフィールドの内容が並び、その下に講師名と予約カレンダーが表示されます。

カレンダーで緑色になっている日付が、その講師の空いている日です。保護者は希望日を選んでそのまま申込みに進めます。
講師名をクリックすると、プロフィールページに移動します。

学歴や合格実績といった、保護者が判断材料にする情報がここに集まります。1人の講師が複数の授業プランを持っている場合は、このページからまとめて見られます。
個人的には、授業プランの詳細から講師名で飛べるこの導線が使いやすいと感じています。条件で絞り込んだあとに保護者が最後に見るのは、プランの説明ではなく人の情報だからです。
会員登録フォームでは、講師として登録するか、保護者・生徒として登録するかを選べます。

よくある質問
Q. 体験授業のあとに本契約を申し込めますか?
一般設定の「マッチング」タブで重複申込みを「許可する」にしていれば、同じ授業プランに何度でも申し込めます。体験授業と本契約を2段階で受け付けたい場合は、この設定にしてください。「許可しない」のままだと、同じ授業プランには生涯で一度しか申し込めません。
Q. 対面とオンラインの両方に対応している講師も登録できますか?
授業プランの「授業スタイル」で「どちらも可」を選べます。プロフィール側の「指導スタイル」にも同じ選択肢があるので、講師単位とプラン単位のどちらでも表現できます。対面のエリアは都道府県で設定しておくと、対面希望の保護者が地域で絞り込めます。
Q. 決済機能はありますか?
MatchLayer単体では決済機能を持っていません。授業料のやり取りはサービス外(銀行振込など)で行うか、Stripeなどの外部決済サービスを別途組み込む形になります。
Q. 講師の審査はできますか?
一般設定で提供者の承認モードを「管理者承認が必要」に変更すると、運営者が承認した講師だけが授業プランを掲載できるようになります。学歴や指導実績の裏付けを確認してから掲載を許可したい場合に使えます。
Q. 同じ時間帯に複数人の予約を受け付けられますか?
カレンダー設定の「在庫」を増やすと、同じ枠で複数件を受け付けられます。グループ指導のプランで使う設定です。ただし在庫は「その枠を何件まで受け付けるか」の上限であり、申込者が同一人物かどうかは区別しません。1対1の個別指導で1枠1人にしたい場合は、在庫を「1」のままにしてください。
Q. 科目のカテゴリは何階層まで作れますか?
親カテゴリの下に子カテゴリをぶら下げる階層構造を作れます。TutorLinkでは学年を親、科目を子にした2階層で構成しました。授業プラン一覧のトップページに表示されるのは親カテゴリだけなので、大分類には学年のような分かりやすい単位を置くと迷いにくくなります。
まとめ
WordPressで家庭教師・学習支援のマッチングサイトを作るには、学年×科目の検索・講師プロフィールの実績表示・体験授業の予約という3つを組み合わせる必要があります。MatchLayerであれば「人のマッチング」プリセットを起点に、コーディングなしでこれらを実装できます。
今回のデモサイト「TutorLink」で設定した内容を整理します。
- サイトジャンルは「人のマッチング」プリセットを適用します
- カテゴリは学年を親、科目を子にした階層構成にします(4親カテゴリ+子カテゴリ15件)
- カスタムフィールドは講師側に最終学歴・指導歴・合格実績など、授業プラン側に対象学年・授業スタイル・無料体験授業などを設定します
- 対応エリアはカテゴリに混ぜず、都道府県機能で管理します
- メッセージ送信タイミングは「成立前から可」にします(体験授業の日程調整のためです)
- 重複申込みは「許可する」にします(体験授業→本契約の2段階に対応するためです)
- カレンダー予約を有効にし、予約枠はマイページの「カレンダー設定」から講師ごとに登録します
同じ仕組みを応用すれば、資格スクールの講師紹介、社会人向けのコーチング、習い事の先生探しなど、「教える人と学ぶ人をつなぐ」サービス全般を作れます。学年と科目にあたる分類を、そのジャンルの言葉に置き換えるところから始めてみてください。