一つの固定ページで、複数のメールフォームを表示させたいことがあって、URLのパラメータで対応できるようにしてみました。
まず、Contact Form 7 のショートコードは、IDとタイトルを入れておく必要があります。
[contact-form-7 id=”7″ title=”hogehoge”] なので、パラメータで能動的にショートコードを呼びだそうと思ったら、 タイトルとIDをパラメータから受け取る必要があります。 例)http://accelboon/tn/mailform/?id=7&title=hogehoge あんまり使い勝手がよくないので、タイトル部分だけをパラメータから受け取って、 メールフォームを表示するようにしたいと思いました。
こんなふうに。
例)http://accelboon/tn/mailform/?title=hogehoge
で、最新バージョンの Contact Form 7 は、カスタム投稿を利用しているので、WP-Queryを使って呼び出せばいいや。 と思ったのですが、WP-Query では、タイトルだけで検索する方法が見当たらりませんでした。
そこで、直接データベースにアクセスして、タイトルに一致するIDを取得する方法で実現したのがこれ。
これを、page.php なんかにいれておくと、titleパラメータを付けた固定ページに、該当するメールフォームを表示させることができます。