WordPressで農産物・産直食材のマッチングサイトを作る方法|産地・栽培方法での絞り込みと出荷時期の見せ方
道の駅やマルシェに人が集まり、産直の通販サイトも増えました。その流れを受けて「うちの地域の生産者を集めたサイトを作れないか」と考える人が増えています。JAや自治体の担当者、農業法人、地域おこしに関わる人。相談の入り口はさまざまですが、行き着く先はだいたい同じです。「Amazonのような大きな場所ではなく、顔の見える範囲でつなぐ場がほしい」という話になります。
とはいえ、いざ作るとなると何から手をつけるか迷います。この記事では、産直マッチングサイト「FarmLink」をWordPressで実際に構築しながら、必要な機能をひとつずつ組み立てていきます。
なお、本記事で使用している画面キャプチャは2026年7月時点のものです。
この記事を読むと、次のことがわかります。
- 農産物・産直食材マッチングサイトに必要な機能を整理できます
- WordPressで実現する際の選択肢と、それぞれの向き・不向きがわかります
- MatchLayerを使って産地・栽培方法で絞り込めるマッチングサイトを構築する手順を追えます
農産物・産直食材マッチングサイトに必要な機能
まず、このタイプのサービスに求められる機能を整理します。農産物では「誰がどこでどう育てたか」が判断材料になるので、生産者の情報と産地の情報をどこまで構造化できるかが設計の中心になります。
| 機能 | 内容 |
|---|---|
| 生産者登録・プロフィール | 農場のある市町村・農業歴・栽培方法・こだわりを生産者自身が登録できる |
| 産直品の掲載 | 「高原育ちの葉物野菜セット」など、品目ごとに掲載できる |
| 品目カテゴリでの検索 | 野菜・果物・米という大分類と、根菜・りんごという小分類で絞り込める |
| 産地での絞り込み | 都道府県と市町村で産地を指定して探せる |
| 栽培方法での絞り込み | 有機JAS認証・特別栽培・慣行農業などの条件で探せる |
| 出荷時期の明示 | 「4月〜11月」のように、その品目を出せる期間を掲載できる |
| 取引条件の明示 | 最小注文単位・保存方法・アレルゲン情報を掲載できる |
| 事前メッセージ | 数量・出荷時期・配送方法を、取引が決まる前に相談できる |
| 繰り返しの申込み | 単発の取引にも、定期的な取引にも対応できる |
| レビュー機能 | 取引後に評価を残し、次の買い手の判断材料にできる |
| 会員登録フォーム | 生産者側・買い手側でロールを分けて登録できる |
このうち「決済機能」については、MatchLayerは現時点で内蔵していません。代金のやり取りは別途Stripeなどの外部サービスと組み合わせるか、サービス外で対応する形になります。この記事のデモサイトも、プラットフォーム上では生産者と買い手が出会って条件を詰めるところまでを担当し、決済と配送は当事者間で行う前提で設計しています。
WordPressで実現する方法(選択肢を比較)
WordPressで産直マッチングサイトを作る際の選択肢は大きく3つあります。
ECプラグインをベースにする方法
WooCommerceなどのECプラグインは、決済と在庫管理を最初から持っています。ただし在庫数を前提とした作りなので、収穫量が読めない農産物とは相性がよくありません。生産者ごとのプロフィールページや、産地・栽培方法での絞り込みも別途作り込むことになります。複数の生産者が出品するマルチベンダー型にするには、さらに拡張プラグインが必要です。
汎用フォーム・ディレクトリプラグインをベースにする方法
Gravity FormsやBusiness Directoryといったプラグインは柔軟性が高く、生産者の登録フォームや一覧表示を独自に設計できます。ただし「マッチング」の概念(申込み・承認・メッセージのやり取り)はゼロから実装することになるので、開発コストがかかります。
マッチング特化プラグインを使う方法
MatchLayerはマッチングサイトに特化したWordPressプラグインで、リスティング管理・メッセージ・レビュー・カスタムフィールド・都道府県と市区町村での絞り込みなどの機能を最初から持っています。「モノのマッチング」プリセットを選ぶだけで、生産者と買い手の分離登録に対応した土台が整います。コーディングなしで動くサイトを短期間で立ち上げたい場合に向いています。
MatchLayerでFarmLinkを構築する手順
ここからは実際の構築手順を追います。今回作るデモサイト「FarmLink」は、長野県の生産者だけが登録する地域特化型の産直サイトです。生産者側と買い手側に分かれた会員登録、品目カテゴリと市町村での絞り込み、栽培方法や出荷可能時期での検索を備えています。
ステップ1:サイトジャンルに「モノのマッチング」を選ぶ
MatchLayerをインストールしたら、最初にサイトジャンル設定からプリセットを選びます。管理画面の「サイトジャンル設定」にアクセスし、「モノのマッチング」を選んで適用します。

農産物は「モノ」なので、このプリセットが土台になります。適用すると、カレンダー機能がオフ、都道府県機能がオン、重複申込みが許可という組み合わせで設定が入ります。これが産直サイトにほぼそのまま使える構成なので、あとから触るのは呼称とメッセージのタイミングだけで済みました。
ステップ2:一般設定で呼称とメッセージの条件を決める
先に呼称を変えておきます。この設定は管理画面のメニュー名やタブ名にも反映されるので、あとの手順で「産直品用」という表示が出てくる前に済ませておくほうがラクです。
「一般設定」→「サイト全体」タブを開きます。
- リスティング呼称を「産直品」に変更します(プリセット適用直後は「譲渡品」になっています)
- ユーザーモードは「分離モード(提供者/利用者)」のままにします(生産者と買い手は役割が異なるためです)
- 都道府県機能は有効のままにします(産地での絞り込みに使います)

次に「マッチング」タブに移ります。産直サイトでは、ここは1か所だけ変更します。
- メッセージ送信タイミングを「成立前から可」に変更します
- 重複申込みは「許可する(何度でも申込み可能)」のままにします
- カレンダー・予約機能はチェックを入れずオフのままにします

メッセージを「成立前から可」にしたのは、農産物の取引では数量・出荷時期・配送方法を先に決めることになるからです。「1箱5kgから」と書いてあっても、実際には「今週は3kgしか出せない」ということが起こります。申込みの段階からやり取りできるようにしておくと、条件が合わないまま話が進むのを防げます。
重複申込みを「許可する」のままにしたのは、定期取引を想定しているからです。「許可しない」にすると、一度取引した生産者の同じ産直品に二度と申し込めなくなります。毎週仕入れたい飲食店にとっては、使いものにならない設定になってしまうでしょう。
カレンダーをオフのままにした理由は、農産物の「いつ」が日時ではなく期間だからです。レッスンや宿泊のように「7月27日の17時」を押さえるのではなく、「4月から11月まで出せます」という幅で伝わればよいので、出荷可能時期のテキストで足ります。
ステップ3:都道府県設定で対象エリアと市町村を用意する
都道府県機能を有効にすると、管理画面に「都道府県設定」メニューが追加されます。FarmLinkは長野県の生産者だけを集める地域特化型なので、ここで対象を絞ります。
やることは2つです。まず、長野県以外の地方に「非表示」のチェックを入れます。中部地方だけはチェックを外したうえで、長野県以外の県を個別に非表示にします。これで、登録フォームと検索の選択肢が長野県だけになります。
もう1つが市区町村の読み込みです。画面上部の「全国を一括読み込み」ボタン、または各県の「市区町村を編集」から、シードデータを読み込めます。長野県で読み込むと77件の市区町村が登録されます。

読み込んだ市区町村は、この画面で名前を編集したり、不要なものを削除したりできます。「県内でも特定の地域だけを対象にしたい」という場合は、ここで絞っておくと登録フォームがすっきりします。
ステップ4:品目のカテゴリを階層で設定する
「カテゴリ設定」メニューから、カテゴリを追加します。今回は大分類を親カテゴリ、品目のグループを子カテゴリにした階層構成にしました。
- 野菜(根菜類/葉物野菜/実野菜/イモ類)
- 果物(りんご/ぶどう/ベリー類/その他果物)
- 米・穀物(米(白米・玄米・もち米))
- その他(加工品/乳製品・卵)
親カテゴリを指定するには、カテゴリ作成時に「親カテゴリー」のプルダウンから選ぶだけです。

野菜を品目ごとにフラットに並べると、大根もほうれん草もトマトも同じ階層に並んでしまい、数が増えるほど探しにくくなります。根菜・葉物・実野菜というグループで束ねておくと、飲食店が「葉物をまとめて仕入れたい」と考えたときにたどり着けます。
果物の子カテゴリを「りんご」「ぶどう」にしているのは、長野県に特化したサイトだからです。エリアを長野県だけに絞った瞬間、カテゴリで迷う時間がはっきり減りました。全国対象のつもりでいたときは「柑橘類も入れるか」「南国フルーツはどう扱うか」と延々と考えていたのに、産地が決まると「この土地で実際に採れるもの」だけを並べればよくなります。全国を対象にするなら、ここは「柑橘類」「核果類」のような一般的な分類にしておくほうが無難でしょう。ただ、その形は自分で組んで運用したわけではないので、あくまで見当です。一覧画面右端の「表示順」を設定すると、野菜→果物→米・穀物→その他の順に並べ替えられます。
ステップ5:カスタムフィールドを追加する
「登録フォーム設定」からプロフィール用・産直品用のカスタムフィールドを追加します。
生産者(提供者)のプロフィール用に、次の5項目を設定しました。
- 農場のある市町村(テキスト/必須)
- 農業歴(セレクトボックス:1年未満〜10年以上/必須)
- 主な栽培方法(セレクトボックス:慣行農業・特別栽培・有機JAS認証・自然農法/必須)
- 農場・生産へのこだわり(テキストエリア/必須)
- 対応可能な取引形態(セレクトボックス:単発・定期取引・どちらも可/必須)
買い手(利用者)側には「ご利用の形態」と「探している品目・希望条件」を設定しました。

「農場・生産へのこだわり」を必須にしたのは、産直サイトでは生産者の人柄や考え方が選ばれる理由になるからです。ここが空欄のまま掲載されると、買い手にとっては品目名だけが並ぶ味気ない一覧になってしまいます。
続いて「産直品用」タブに切り替えて、品目ごとのフィールドを追加します。
- 栽培方法(セレクトボックス:慣行農業・特別栽培・有機JAS認証・自然農法/必須)
- 出荷可能時期(テキスト/必須)
- 最小注文単位(テキスト/必須)
- 保存方法(テキスト/必須)
- アレルゲン情報(テキストエリア)
- こだわりポイント・生産者のメッセージ(テキストエリア)

このうち「栽培方法」と「出荷可能時期」は検索対象に設定しました。検索対象にしたフィールドは、産直品一覧の絞り込み条件として自動的に表示されます。産地はカスタムフィールドではなく、ステップ3で用意した都道府県と市区町村で扱うので、ここには含めていません。
そして、在庫数のフィールドはあえて作っていません。農産物の在庫は天候で変わるので、数字で持たせると更新が追いつかず、実態と合わない表示が残ります。代わりに「出荷可能時期」で出せる期間を、「最小注文単位」で取引の下限を示しておき、実際の数量はメッセージで詰める形にしました。
ステップ6:トップページのテキストを設定する
「トップページ設定」でブランドカラーとヒーロー画像、それに各セクションのテキストを設定します。

プリセットを適用した直後は「使わないモノに、次の出番を。」「ゆずる物を掲載する」といった、譲り合いを想定した文言が入っています。産直サイトではここを「産直品を探す」「生産者に問い合わせる」「取引スタート」のように書き換えます。
ステップ7:生産者の産直品を登録する
設定が完了したら、生産者のアカウントで産直品を登録します。「産直品を掲載する」リンクから登録フォームにアクセスします。

産地の指定は2段階です。「都道府県を選択」ボタンで長野県を選ぶと、その下に長野県の市区町村がチェックボックスで展開されます。複数の市町村にまたがって出荷している生産者は、まとめて選べます。
ここで一度つまずきました。ステップ3で市区町村を読み込んでいないと、この欄はそもそも表示されません。自分は読み込みを後回しにしたまま登録フォームを開いてしまい、長野県を選んでも下に何も出てこないので、フォーム側の設定を疑って10分ほど探し回りました。原因はシードデータの読み込み漏れだけでした。先に読み込んでおけば、この回り道は避けられます。
登録した産直品は、マイページの「産直品管理」タブで一覧できます。

完成したデモサイトの確認
すべての設定が終わったトップページがこちらです。

産直品一覧では、ステップ5で検索対象に設定したフィールドが絞り込み条件として並びます。キーワード・カテゴリ・都道府県のほかに、栽培方法・出荷可能時期で条件を組み合わせられます。

都道府県で長野県を選ぶと、市区町村のチェックボックスが現れます。

「佐久市と小諸市の生産者だけを見たい」といった絞り込みができます。
各産直品の詳細ページには、説明文の下にカスタムフィールドの内容が並びます。

出荷可能時期・最小注文単位・保存方法が並ぶことで、買い手は問い合わせる前に取引が成立しそうかを判断できます。飲食店にとっては、この3つが合わなければ問い合わせる意味がないので、先に見せておくほど無駄なやり取りが減ります。
生産者名をクリックすると、プロフィールページに移動します。

産直品の詳細が「モノの情報」だとすると、こちらは「つくる人の情報」です。農業歴やこだわりが読めることで、はじめて取引する相手でも人となりが伝わります。1軒の生産者が複数の品目を出している場合は、このページからまとめて見られます。
会員登録フォームでは、生産者として登録するか、買い手として登録するかを選べます。

よくある質問
Q. 在庫数を管理する機能はありますか?
MatchLayerには在庫数のフィールドはありません。この記事の設計では、代わりに「出荷可能時期」と「最小注文単位」をカスタムフィールドで持たせ、実際の数量はメッセージで調整する形にしました。収穫量が天候で変わる農産物では、数値の在庫を持たせても更新が追いつかず、かえって実態と合わない表示が残ります。
Q. 季節ごとに出せる品目が変わる場合はどうしますか?
産直品ごとに「出荷可能時期」を書き分けます。デモサイトでは「4月〜11月(真夏は品目が変わります)」のように、期間と補足を1つの欄に書いています。季節外の品目を一時的に隠したい場合は、マイページから受付停止に切り替えることもできます。
Q. 市区町村での絞り込みはどう設定しますか?
「都道府県設定」画面で市区町村のシードデータを読み込むと、登録フォームと検索フォームに市区町村の選択肢が現れます。カスタムフィールドを作る必要はありません。読み込んだあとに名前を編集したり、対象外の市町村を削除したりもできます。
Q. 全国を対象にしたサイトにもできますか?
できます。この記事では長野県だけを表示する設定にしましたが、都道府県設定で地方の非表示チェックを外せば全国から選べるようになります。その場合は「全国を一括読み込み」で全都道府県の市区町村をまとめて登録しておくと、生産者がどこにいても市町村まで指定できます。
Q. 同じ生産者から定期的に仕入れられますか?
一般設定の「マッチング」タブで重複申込みを「許可する」にしていれば、同じ産直品に何度でも申し込めます。モノのマッチングのプリセットでは最初からこの設定になっているので、定期取引を想定する場合は変更不要です。
Q. 決済機能はありますか?
MatchLayer単体では決済機能を持っていません。代金のやり取りはサービス外(銀行振込など)で行うか、Stripeなどの外部決済サービスを別途組み込む形になります。プラットフォーム上では生産者と買い手が出会って条件を詰めるところまでを担当する、という設計になります。
Q. 生産者の審査はできますか?
一般設定で提供者の承認モードを「管理者承認が必要」に変更すると、運営者が承認した生産者だけが産直品を掲載できるようになります。有機JAS認証の確認など、掲載前に書類を確認したい場合に使えます。
まとめ
WordPressで農産物・産直食材のマッチングサイトを作るには、品目・産地・栽培方法という3つの軸で探せる状態を作り、そのうえで季節性をどう表現するかを決めることになります。MatchLayerであれば「モノのマッチング」プリセットを起点に、コーディングなしでこれらを実装できます。
今回のデモサイト「FarmLink」で設定した内容を整理します。
- サイトジャンルは「モノのマッチング」プリセットを適用します
- リスティング呼称を「産直品」に変更します(あとの手順の表示に関わるので先に済ませます)
- メッセージ送信タイミングは「成立前から可」にします(数量と出荷時期の調整のためです)
- 重複申込みは「許可する」のままにします(定期取引に対応するためです)
- カレンダー機能はオフのままにします(出荷時期は日時ではなく期間で表すためです)
- 都道府県設定で長野県以外を非表示にし、長野県の市区町村を読み込みます
- カテゴリは大分類を親、品目のグループを子にした階層構成にします(4親カテゴリ+子カテゴリ11件)
- カスタムフィールドは生産者側に農業歴・栽培方法・こだわりなど、産直品側に出荷可能時期・最小注文単位・保存方法などを設定します
今回いちばん効いたのは、在庫数の欄を作らないと決めたことと、産地をカスタムフィールドにしなかったことでした。どちらも「作らない」判断です。同じ仕組みを応用すれば、水産物の産地直送、加工品の卸売、花き類の取引など、「生産する人と仕入れる人をつなぐ」サービス全般を作れます。品目と産地にあたる分類を、そのジャンルの言葉に置き換えるところから始めてみてください。