ショートコードでphpを記述できる仕様にすることで、固定ページや投稿ページ、ウィジェット、メニューなど、Wordpress内の好きな場所にphpを設置する事ができます。
今回は、プラグインなしでページ内にphpを読み込む方法についてご紹介します。
全体的な流れ
この実装は3つのSTEPで実装していきます。
functions.phpにコードを追加
functions.phpの場所は「WordPressをインストールした場所」→「wp-content」→「themes」→「有効化中のテーマ」の中にあります。
親テーマ、子テーマの構造はそれぞれ使用しているテーマで異なりますが、functions.php
に下記のコードを貼り付けします。
親テーマを利用している場合
/* 親テーマ階層のPHPの読み込み
---------------------------------------------------------- */
function short_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('call_php', 'my_php_Include');
子テーマを利用している場合
/* PHPの読み込み
---------------------------------------------------------- */
function my_php_Include($params = array()) {
extract(shortcode_atts(array('file' => 'default'), $params));
ob_start();
include(STYLESHEETPATH . "/$file.php");
return ob_get_clean();
}
add_shortcode('call_php', 'my_php_Include');
このコードを記述することで、functions.phpと同じ階層にあるphpのデータを呼び出せるようになります。
ショートコードのphpを作る
function.phpの同階層にで表示するようphpのファイルを作成します。
ファイル名はなんでも良く、ファイルの中身には表示させたい記述をして、function.phpの同階層にできたファイルを設置しましょう。
function.phpが保存されている階層は、「WordPressをインストールした場所」→「wp-content」→「themes」→「有効化中のテーマ」です。
ショートコードを任意の場所に記述
先ほど作成したサンプルphpをショートコードを使い、呼び出す為任意の場所に下記のコードをコピーしましょう。
[call_php file='●●●●●']
「file=’●●●●●’」に保存したphpの名前を書き込めば、そのPHPを呼び出して表示できます。
名前は拡張子が不要なので「.php」を抜いたもので、例で「sample.php」の場合は、「call_php file=’sample‘」です。
このように、ショートコードを使って、本来phpを呼び出せない、投稿記事や固定ページ、ウィジェットにもphpを表示することができます。
参考サイト
参考 WordPress投稿ページにPHP利用→ショートコードを使おう!vdeep