2017.09.05
2017.09.08
WordPress
WordPressショートコードで1つの情報を複数箇所に呼び出す方法

WordPressに任意の記述を呼び出すことのできるショートコード機能があります。function.phpに特定の記述をすることによって、任意のテキストや記述の塊を呼び出すことのできる機能です。そのままでも便利なのですが、function.phpに記述を書き込むので長い文章や定期的に編集する記述を設定する場合は一工夫することでより使いやすくすることができます。今回はそんなショートコードの基本的な記述方法と、便利な小技をご紹介します。
基本的なショートコードタグ
testというショートコードでテストテストテストというテキストを呼び出したい場合、function.phpに以下のように記述します。
function shortcode_test00(){
return "テストテストテスト";
}
add_shortcode('test','shortcode_test00');
add_shortcode($tag , $func );部分がショートコードタグです。$tagにショートコードにする文字列、$funcにショートコードが出現した場所で呼び出す関数名を指定しています。
定期的に編集するショートコード
例えば複数のフォームを持つサイトでプライバシーポリシー部分をまとめて管理したいときや、サイトのサイドナビを管理画面から編集できるようにしたいときに、固定ページへ記述を投稿してショートコードで呼び出すことで実現することができます。
test-pageというスラッグの固定ページヘ記述した内容を[test]というショートコードで呼び出す例が以下です。
function shortcode_test01(){
$page = get_page_by_path('test-page');
return $page->post_content;
}
add_shortcode('test','shortcode_test01');
get_page_by_pathで投稿を取得し、$page->post_content;で投稿内容を取り出し、[test]へと出力しています。
テンプレートを読み込むショートコード
javascriptやgoogle adsenceの記述のような、管理をクライアントから任されていたり、編集に少し気を使うような記述は、phpのテンプレートファイルから呼び出して利用することができます。
以下はblock_test.phpというテンプレートを[test]というショートコードで呼び出す例です。
function shortcode_test02(){
ob_start();
get_template_part('block_test');
return ob_get_clean();
}
add_shortcode('test','shortcode_test02');
get_template_partの呼び出しは、そのままだとどこに記述してもページの最上段に反映されてしまうので、phpのob_startとob_get_cleanを利用し、任意の箇所に呼び出しています。
まとめ
ショートコードは簡単な記述で纏まったテキストやコードを任意の箇所に使いまわせるので大変便利です。用途に合わせて上手く導入することでサイト制作や運営のコストをぐっと縮められるので、是非導入をご検討下さい。
