速報

JAL・JTAの予約情報約9万2千人分に外部参照の形跡|対象項目と利用者対応

CATEGORY

【MW WP Form】GETパラメータの有無で表示する項目を制御する方法【WordPress】

※本ページのリンクにはプロモーションが含まれています。

【MW WP Form】GETパラメータの有無で表示する項目を制御する方法【WordPress】

目次

本記事では、MW WP FormでGETパラメータの有無によって表示する項目を制御する方法をご紹介しています。

MW WP Formにはいくつものが用意されています。その中の一つに「my_mwform_post_content」というものがあります。

「my_mwform_post_content」はフォームの内容を設定する際に使用するフィルターフックです。下記のページに開発者様が用意したマニュアルがありますので、ご一読いただければと思います。

[マニュアル]mwform_post_content_mw-wp-form-xxx

今回実現したいこと

例えば下記のようなGETパラメータがついたリクエストがあったとします。よく見かけるGETパラメータかと思います。

https://into-the-program.com/contact-form?id=12345

もし「id」を持ったGETリクエストがあった場合に予め用意しておいた「項目)」を表示する、ということを実現したいと思います。

では、解説していきます。

スポンサーリンク

前提準備

本記事では構築中もしくは稼働中の「MW WP Form」に少し手を加えるといった内容になります。

「MW WP Form」はデフォルトではパラメータを使用することができないようになっています。なのでパラメータが取得できるように予め下記の設定をしておいてください。

  • 「MW WP Form」の設定画面で「引数を有効にする」にチェックを入れておく

「MW WP Form」の設定画面右側にありますので、チェックを入れて保存すれば準備完了です。

フォームを作成する

「MW WP Form」の設定画面から簡単なフォームを作成します。作成済みの方はそのフォームをご使用いただき、まだ作成されていない方は「フォーム編集」画面から下記のような簡単なフォームを作成してください。

<table>
    <tr>
        <th>お名前</th>
        <td>[mwform_text name="お名前"]</td>
    </tr>
    <tr>
        <th>メールアドレス</th>
        <td>[mwform_email name="メールアドレス"</td>
    </tr>
    <tr>
        <th>お問い合わせ内容</th>
        <td>[mwform_textarea name="お問い合わせ内容" rows="10"]</td>
    </tr>
</table>

また、併せてGETパラメータを取得した際に項目を表示した箇所にコメントを記載しておきます。本記事では「お問い合わせ種別」という項目を表示したいので、そのようにコメントを追加します。

上記のHTMLにコメントを追加すると下記のようになります。

<table>
    
    <!-- お問い合わせ種別 -->
    
    <tr>
        <th>お名前</th>
        <td>[mwform_text name="お名前"]</td>
    </tr>
    <tr>
        <th>メールアドレス</th>
        <td>[mwform_email name="メールアドレス"</td>
    </tr>
    <tr>
        <th>お問い合わせ内容</th>
        <td>[mwform_textarea name="お問い合わせ内容" rows="10"]</td>
    </tr>
</table>

以上で「フォーム編集」画面での修正は完了です。

スポンサーリンク

GETパラメータを取得した際にフォームの内容を設定する

続いてPHPでfunctions.phpを修正していきます。処理の流れは下記のような順番でいきたいと思います。

  • 「id」というGETパラメータが取得する
  • フォームのコンテンツを取得する
  • 「お問い合わせ種別」のコメント部分を表示したい項目に置換する

では、実際に「functions.php」に追記していきます。

functions.php

function my_mwform_post_content( $content, $Data ) {
    if(!empty($_GET['id'])){
        $str = "<tr>
                  <th>お問い合わせ種別</th>
                  <td>[mwform_checkbox name=\"お問い合わせ種別\" children=\"0:選択①, 1:選択②, 2:選択③\" separator=\",\"]</td>
                <tr>";

        $content = str_replace('<!-- お問い合わせ種別 -->', $str, $content);
        
        return $content;
    }
    return $content;
}
add_filter('mwform_post_content_mw-wp-form-xxx', 'my_mwform_post_content', 10, 2);

以上です.

(「mwform_post_content_mw-wp-form-xxx」の「xxx」部分はフォームの識別番号に置換してください。)

本記事では「お問い合わせ種別」という項目を表示するためのサンプルを使用して解説を進めてきましたが、実際に使用される場合はコメント等は変更してご使用ください。

また「$str」の変数内に指定してあるタグが記載していた「お問い合わせ種別」のコメントに代わって表示される項目になります。代入してあるテキスト群を変更することで任意の項目が表示できるようになりますので、色々試していただければと思います。

最後に

いかがでしたでしょうか。

「MW WP Form」は拡張性が高く思った通りのフォームを簡単に構築することができる素晴らしいプラグインです。個人・法人問わず多くのエンジニアに愛されている人気のプラグインで、ネットに情報が多く、痒いところに手が届くため、今後も多くの場面で使わせていただければと思います!

以上、MW WP FormでGETパラメータの有無で表示する項目を制御する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク

フィルターフック

WordPressで、出力や設定の値を受け取って加工し、返すための仕組み。add_filter()で登録する。

詳しく見る