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

コメントを残す