【Contact Form 7】自作ショートコードを使用する方法
WordPressでお問い合わせフォームを作成する際に使用する人気プラグインの「Contact Form 7」。
今回の記事ではこのプラグイン内のエディタで自作ショートコードを使用する方法をご紹介します。
WordPressの投稿エディタで自作ショートコードを使用する方法は以下の記事で紹介しています。
この記事の目次を表示
wpcf7_add_form_tagを使用する
「Contact Form 7」のエディタ内で自作ショートコードを使用する場合、WordPressのadd_shortcode
では正しく動作しません。
そのため、「Contact Form 7」で自作ショートコードを使用する場合は、このプラグインに用意されているwpcf7_add_form_tag
を使用します。
wpcf7_add_form_tag
を使用する場合、引数は2つ指定します。
wpcf7_add_form_tag( 'ショートコード名', '自作関数名' );
それでは続いて具体的な使用例を交えてwpcf7_add_form_tag
見ていきましょう。
使用テーマまでのディレクトリを出力する
使用しているテーマまでのディレクトリを出力する場合はfunctions.phpに以下のように記述します。
<?php
function my_wpcf7_get_theme_dir() {
return get_template_directory_uri();
}
wpcf7_add_form_tag( 'theme_dir', 'my_wpcf7_get_theme_dir' );
?>
そして「Contact Form 7」のエディタ内で以下のようにショートコードを記述します。
<img src="[theme_dir]/images/logo.jpg">
このように記述することで直接エディタ内にURLを記述することなく動的にテーマまでのディレクトリURLを出力することが出来ます。
サイトのホームURLを出力する
サイトのホームURLを出力する場合はfunctions.phpに以下のように記述します。
<?php
function my_wpcf7_get_home_url() {
return home_url();
}
wpcf7_add_form_tag( 'home_url', 'my_wpcf7_get_home_url' );
?>
そして「Contact Form 7」のエディタ内で以下のようにショートコードを記述します。
<a href="[home_url]/privacy">個人情報保護方針はこちら</a>
このように記述することで直接エディタ内にURLを記述することなく動的にホームのURLを出力することが出来ます。
wcpf7_add_shortcodeとの違いは?
「Contact Form 7」で独自ショートコードを使用する方法としてよく紹介されているwcpf7_add_shortcode
。
このフックを使うことでも同じことが出来ますが、wcpf7_add_shortcode
は非推奨となっています。
そのため現在は使用することが出来ても、将来的には使用できなくなってしまう恐れがあるので、wpcf7_add_form_tag
を使用するようにしましょう。
また、wcpf7_add_shortcode
の中身を見てみると
function wpcf7_add_shortcode( $tag, $callback, $has_name = false ) {
wpcf7_deprecated_function( __FUNCTION__, '4.6', 'wpcf7_add_form_tag' );
return wpcf7_add_form_tag( $tag, $callback, $has_name );
}
このようになっていて、内部ではwpcf7_add_form_tag
を呼び出しているのがわかりますね。
つまりwpcf7_add_shortcode
を使ってもwpcf7_add_form_tag
を使っているのと同じことなんです。
まとめ
wpcf7_add_form_tag
を使用することで応用次第では、記事を出力したり、様々なことが出来るようになりカスタマイズの幅は広がります。
以上、「Contact Form 7」で自作ショートコードを使用する方法のご紹介でした。