5
4

More than 5 years have passed since last update.

Contact Form7で独自ショートコードを使う際「wpcf7_add_shortcode」も「wpcf7_add_form_tag」も要らなかった

Posted at

Contact Form7を利用して運用しているフォームで独自ショートコードを使用する必要が出てきたため、調べたところwpcf7_add_shortcodewpcf7_add_form_tagについての情報が出てきました。
結論から言うと、これらの関数を使う必要はなく単純にadd_shortcodeでいけました。なんでや…。
この記事では私の一連の行動を記録しておきます。

動作環境

この情報は下記の環境で起こった内容をまとめております。
- Wordpress 4.9.4
- Contact Form7 Ver 5.0

wpcf7_add_shortcodeを使ってみるも動かない

検索でひっかかった情報からwpcf7_add_shortcodeを使うとええんやな!と理解してやってみるもショートコードが表示されるだけで動かない。

こういう時は公式サイト!ということでContact Form 7のサイトを見たところver4.6のリリースノートに下記の通り記載されておりました。

WPCF7_Shortcode は非推奨に

WPCF7_Shortcode クラスは廃止予定につき使用非推奨になります。カスタムコードで WPCF7_Shortcode >を使用している場合は WPCF7_FormTag に変更してください。そうしないと、デバッグモードで運用している場>合に警告が表示されます。
この改名を行った理由は、”shortcode” という用語が紛らわしかったからです。実際には Contact Form 7 プラグインのフォームタグを指すものですが、あたかも WordPress 自身のショートコードを指しているかのように誤解させていました。これら二つはよく似ていますが根本的に異なる概念です。
同様の理由から、その他のいくつかのクラス、メソッド、関数についても非推奨化されています。

| 廃止予定 | 代替 |
| WPCF7_Shortcode | WPCF7_FormTag |
| WPCF7_ShortcodeManager | WPCF7_FormTagsManager |
| wpcf7_add_shortcode() | wpcf7_add_form_tag() |
| wpcf7_scan_shortcode() | wpcf7_scan_form_tags() |

という事でwpcf7_add_form_tagを使ってみることに。

wpcf7_add_form_tagでも動かない

他様のサイトのサンプルを参考にソースを書いてみるも出力されるのは無慈悲なショートコード。
元々の関数が悪いのかと思って試しにadd_shortcodeを使って他のページに出力してみる。
希望通りに出力されました。なんでやねん。

add_shortcodeで書いたショートコードをフォーム内に追加したら動いた

ダメ元と思いながらもフォーム内に↑で追加したショートコードを書いたら希望通りに出力されました。


ということで一連の顛末でした。
もしもwpcf7_add_shortcodewpcf7_add_form_tagを使用してもショートコードが動かないという方がいらっしゃったら参考にしてください。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4