WordPress 投稿内やウィジェットでphpファイルを読み込めるようにする方法

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' ); //ウィジェットでショートコードを使う

これでテキストウィジェットでもショートコードが使えます。

 

現場からは以上です。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です