MW WP Formでフォームごとにスラッグを設定して表示させる方法

投稿日:

カテゴリー:

受託開発をする際の進め方として一般的なのが、ローカル環境で開発をして、データをテスト(もしくは本番)環境にアップロードするという流れがあると思います。

僕も例に漏れず、ローカル開発環境(WordPressの場合は、Local by Flywheel)で開発を進めて、どこかのタイミングでアップロードするのですが、MW WP FormなどのフォームID番号がローカルと本番とで変わってしまう状況がとても面倒に感じていました。

こんなことに困っていました

例えば、ローカル開発環境内でMW WP Formを使ってお問い合わせフォームを作ったとします。その際に、ショートコードが発行されるのですが、そこに番号が書いてあると思います。

お問い合わせフォームと言えど、固定ページにペタっと貼るだけの場合は少なく、page-slug.phpといった具合にファイルを作ってカスタマイズすることもしばしばです。

その際に、PHP側で出力した方が楽な時が多いので、よくecho do_shortcode();でショートコードを書き出してしまいますが、ローカルで作ったフォームと本番環境で別に作ったフォームとでは、番号が一致させるのが結構面倒で、いつも違う番号になってしまっていました。

これに関する対応方法がわからず、毎回2つ(ローカルのフォームと本番のフォーム)のショートコードを書いてコメントアウトしてアップしたりしていたのですが、かなり非効率…。みんなどうしているんだろうと思って、こんなことをツイートしていました。

そしたら、開発者の北島さんがレスポンスしてくださって、

との情報をいただいて、早速試してみました!(マニュアルちゃんと読め!って怒らないで…

MW WP Formでフォームにスラッグを設定してPHPからechoでフォームを表示させる方法

まずは、フォームを作ります。キャプチャはテストなので簡単に入力部分を表示させているだけです。

そして、そのフォームの編集画面で、右上の【表示オプション】をクリックすると、このような色々とチェックできる画面になるので、その中の【スラッグ】にチェックを入れます。

すると、フォーム作成エリアの下に、スラッグを設定できる部分が表示されているはずです。デフォルトではフォーム名になっているはず。

デフォルトの名称からcontactに変更してみました。

あとは、PHPファイルから出力するだけです。任意のPHPファイルの任意の場所から、

<?php echo do_shortcode( '[[mwform_formkey slug="contact"]]' ); ?>

これで、設定したフォームがごっそり表示されると思います。

上記コードは、MW WP Formのスラッグをcontactとした場合のソース例になります。皆さんの環境に合わせて適宜読み替えてください。

まとめ

これでフォームのID番号がローカルと本番で違っていてもスラッグで紐づけることができるのでとても楽ですね!

北島さん、ありがとうございましたー!!

Gifu WordPress Meetup の
運営・開催に協力しています。

WordPress Meetup とは、世界各国 100 以上の国々で 700 余りの グループが活動している WordPress コミュニティです。

オレインデザイン代表 久野晃司は、岐阜での WordPress Meetup の運営・開催に協力しています。

CoderDojo岐阜 の
運営・開催に協力しています。

CoderDojo とは 7〜17歳を対象とした非営利のプログラミング道場で、CoderDojo岐阜は岐阜県岐阜市にある みんなの森 ぎふメディアコスモス を拠点として毎月定期開催をしています。

オレインデザインは、CoderDojo岐阜へ寄付を行い、定期的かつ安定的な運営と開催に協力をしています。