プラグインなしでページ内にPHPを読み込む方法

phpのショートコードのイラスト

ショートコードでphpを記述できる仕様にすることで、固定ページや投稿ページ、ウィジェット、メニューなど、Wordpress内の好きな場所にphpを設置する事ができます。

今回は、プラグインなしでページ内にphpを読み込む方法についてご紹介します。

全体的な流れ

この実装は3つのSTEPで実装していきます。

STEP.1
functions.phpにコピペ
外観 > テーマエディターの「テーマのための関数 (functions.php)」にコードをコピペ
STEP.2
ショートコードのphpを作る
function.phpの同階層にで表示するようphpのファイルを作成して、有効化したテーマと同じ階層に設置します。
STEP.3
ショートコードを任意の場所に記述
サンプルphpをショートコードを使い、呼び出す為任意の場所に下記のコードをコピーしましょう。
注意
functions.phpをいじる場合、ftpで必ずバックアップを取ってから行い、テーマ本体ではなく子テーマの方に関数をコピペするようにしましょう。

functions.phpにコードを追加

functions.phpの場所は「WordPressをインストールした場所」→「wp-content」→「themes」→「有効化中のテーマ」の中にあります。

親テーマ、子テーマの構造はそれぞれ使用しているテーマで異なりますが、functions.phpに下記のコードを貼り付けします。

親テーマを利用している場合

function.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');

子テーマを利用している場合

function.php

/* 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」→「有効化中のテーマ」です。

ftpのファイルサーバー

ショートコードを任意の場所に記述

先ほど作成したサンプルphpをショートコードを使い、呼び出す為任意の場所に下記のコードをコピーしましょう。

ショートコード

[call_php file='●●●●●']

「file=’●●●●●’」に保存したphpの名前を書き込めば、そのPHPを呼び出して表示できます。

名前は拡張子が不要なので「.php」を抜いたもので、例で「sample.php」の場合は、「call_php file=’sample‘」です。

このように、ショートコードを使って、本来phpを呼び出せない、投稿記事や固定ページ、ウィジェットにもphpを表示することができます。

参考サイト

参考 WordPress投稿ページにPHP利用→ショートコードを使おう!vdeep

カテゴリーのイラスト

同じカテゴリの記事一覧

ボタンの影