WordPressでは、テンプレートファイルに以下のように書くことで、他のphpファイルを読み込むことができる。
例えばテーマ内の”hoge.php”というファイルを読み込みたかったら、
1 |
get_template_part('hoge'); |
と書けばOK。しかしこれはphpなので、投稿とかでは使えません。固定ページの途中でループを使いたいんじゃ…といったことがたまにあると思います。
そこで今回はこれを、投稿内やウィジェットでも読み込めるようにします。
基本的に、投稿やテキストウィジェット内でphpを使えるようになるプラグイン”PHP Execution”はセキュリティ上使わないほうがいいので、ショートコードを使って読み込むことにする。
functions.phpに以下を記述。
1 2 3 4 5 6 7 8 9 |
<?php // テンプレート呼び出し用ショートコード function my_php_Include( $params = array() ) { extract( shortcode_atts(array('file' => 'default'), $params ) ); ob_start(); get_template_part( $file ); return ob_get_clean(); } add_shortcode('myphp','my_php_Include'); |
これで、投稿内で”hoge.php”を読み込みたい場合は
1 |
[myphp file='hoge'] |
とショートコードを書けばOK。
“hoge”の部分を変えれば他のファイルも読み込めます。
ウィジェットの「テキスト」でも使いたい場合は、ウィジェットでショートコードを使えるようになる以下のコードをfunctions.phpに追加する。
1 |
add_filter('widget_text', 'do_shortcode' ); //ウィジェットでショートコードを使う |
これでテキストウィジェットでもショートコードが使えます。
現場からは以上です。