WordPressの記事投稿や固定ページ編集画面で、任意のファイルが読み込めたら便利ですよね。
てことで、ショートコードを使ってのinclude方法を以下に解説します。
【手順1】
/wp-content/themes/使用中のテーマ名/functions.php の最後に以下を挿入。
1 2 3 4 5 6 7 8 9 10 |
function Include_my_php($params = array()) { extract(shortcode_atts(array( 'file' => 'default' ), $params)); ob_start(); include(get_theme_root() . '/' . get_template() . "/$file.php"); return ob_get_clean(); } add_shortcode('myphp', 'Include_my_php'); |
【手順2】
読み込みたいphpファイルを作成し、同フォルダにアップする。
記事内に以下を記述(ファイル名がexample.phpの場合)
1 |
[[myphp file='example']] |
以上!
超簡単♪
なお、アップするPHPファイルを別フォルダを作成して格納したい場合は、
6行目の部分を以下のようにするとOK
1 |
include(get_theme_root() . '/' . get_template() . "/フォルダ名/$file.php"); |
▼今回の記事の参考元
kachibito.net
コメント
こんばんわ。
別のドメインにファイルを置いてそれを読み込む・・・というのは出来ないのでしょうか?
include(get_theme_root() . ‘/’ . get_template() . “/フォルダ名/$file.php”);
ここを変えれば出来るかと思ったのですが、知識が足らず・・(´m`)
こんばんは♪
おっしゃるように、その部分を変えればできると思います。
example.com直下にファイルを置くと仮定すれば、以下に変えればできるんじゃないかと・・・。
echo file_get_contents(“http://example.com”.”/$file.php”);
回答いただいてありがとうございます!
早速試してみましたが、読み込んでいる中の一部でエラーが出てしまっていました。
Fatal error: Call to undefined function query_posts() in /home/users/1/lolipop.jp-*****/web/****.php on line 158
同じドメイン内で読み込んでいた時は表示されていたので、やはり難しいのでしょうか・・。
ちなみに該当のline158は、
query_posts(‘posts_per_page=8&category_name=test’);
が入っています。
たぶんコードに矛盾が出てるのだと思います。
読み込み先のコードをある程度書き直さなければ、難しいと思いますよ。
そうなんですね。
わざわざご回答いただいてありがとうございました!