Contact Form7を利用して運用しているフォームで独自ショートコードを使用する必要が出てきたため、調べたところwpcf7_add_shortcode
やwpcf7_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_shortcode
やwpcf7_add_form_tag
を使用してもショートコードが動かないという方がいらっしゃったら参考にしてください。