一緒に悩み、考える。
つくるだけでなく、
そのあとの物語も、ともに。
どんな会社もサービスも、それぞれにストーリーがあります。
花のやはそれをサポートしながら、お客様の成長を隣で見ていたいのです。
一緒に悩み、考える。
つくるだけでなく、
そのあとの物語も、ともに。
どんな会社もサービスも、
それぞれにストーリーがあります。
花のやはそれをサポートしながら、
お客様の成長を隣で見ていたいのです。
ブログBLOG
- 名古屋のホームページ制作会社 花のや
- 花のやブログ
- MW WP FORMでショートコードをテーマファイルに書かない方法
MW WP FORMでショートコードをテーマファイルに書かない方法
こんにちは、和田です。
先日MW WP FORMがバージョンアップをし、お問い合わせの連番機能がつき
また、確認画面等の遷移でフォームの部分に移動するという機能がつきましたので
今まで公開していた機能強化プラグインの機能を一部削ります。
やはり、プラグインで無理やりやるよりも本体の方の機能を使用したほうが
安定性もいいと思いますのでまだバージョンアップしていない方は試してみましょう!
さて、今回はもMW WP FORMネタで
テンプレートに直接ショートコードを書かない方法
というのを考えてみたいと思います。
例えば、イベント告知用のカスタム投稿を用意して、その投稿には全てイベント申し込みのフォームを設置したい場合は
普通に考えれば、single-event.phpというテンプレートファイルを作って、テンプレート内に do_shortcodeタグで直接書きたくなります。
ただ、MW WP FORMでは本文(contents)内にショートコードがなければいろいろと面倒になったりします
では、方法としてどのようなものがあるか考えてみましょう。
- 文末に入力してもらう
- 保存するときにショートコードを自動で付加する
- 本文には自動で入力させて、書いてもらう本文は別に用意する
この辺りが思いつきました。
1については、最も簡単かつ確実ですが、運用側にそれができる知識があるかどうかになります。
ある程度のルールを決めてあげればいいのですがたまに違う人が触ったりする。担当が変わる場合もある
となるとちょっと大変かもしれません。
2についてはまずいちばんはじめに考えることだと思います。
ただ、こちらも、例えば新規投稿した後、編集した時に変に触られる可能性がないとも言えません。
新規投稿>ショートコード貼り付け
編集時>ショートコードがあったら消す
編集保存時>ショートコードがなければ貼り付け
という分岐で対応できるといえばできますが…ちょっと面倒かも?
ということで3の方法を解説していきます。
3の方法をとるにあたって、必要なプラグインは通常、本文を入力する部分を隠すものです。
また、代わりになるエディターを表示したいので、これらに最も最適なものはやはりadvanced custom fieldsではないかと思います。
このようにコンテンツエディタにチェックを入れれば、コンテンツエディタ部分は表示されなくなります。
これは、ただ単に隠しているだけなので、この隠した場所に用意したフォームタグを自動で入れるようにしてあげればいいだけです。
以下がそのためのコードになります。
これをfunctions.phpに入力します
add_filter( 'default_content', 'insert_formcode', 10, 2 ); function insert_formcode( $content, $post ) { if (is_admin()) { if ($post->post_type == 'event') { $content = ''; } } return $content; }上の例では、ポストタイプeventを新規で登録するときに
あらかじめ用意したフォームのフォーム識別子を入れる。
ということになりますので、post_typeやフォーム識別子は適宜変更します。これでテンプレートに書いていろいろと不便な思いをしなくても済みますね。
人気記事ランキング
カテゴリ
書いた人別一覧
お問い合わせ
Webサイト制作・その他お仕事のご依頼、
ご相談についてお気軽にお問い合わせください。
052-211-9898