WordPressの固定ページでは、デフォルトの状態ではPHPを使用できません。固定ページでPHPを使用するためのプラグインはありますが、元々セキュリティを考慮してのPHP不可という仕様のため、PHPを実行できるようにするには不安が残ります。
そんな中でも、1ページだけで良いのでPHPを使いたい、というケースもあるかと思います。そんな時は別途PHPファイルを作成し、そのPHPファイルを読み込む、という方法で実現が可能です。
まず「functions.php」に、PHP読み込みのための記述を行い、ショートコードで実行できるようにします。下記の例は、「テンプレートフォルダに置かれている、php_file.phpというファイルを、php_scriptsというショートコードで読み込む」という記述です。
function get_php_file($params = array()) { extract(shortcode_atts(array( 'file' => 'php_file' ), $params)); ob_start(); include(get_theme_root() . '/' . get_template() . "/$file.php"); return ob_get_clean(); } add_shortcode('php_scripts', 'get_php_file');
下記は環境に合わせて編集が必要です。
- php_file = 作成したPHPファイルの名前を記述します。
- get_php_file = 任意の関数名を記述します。
- php_scripts = 関数を呼び出すための任意のショートコード名を記述します。
続いて、実行したい固定ページの本文にショートコードを記述します。
[php_scripts]
あとは用意したPHPファイル(この例だとphp_file.php)に、実行したいスクリプトを記述すれば完了です。試しにphp_file.phpに下記のような記述をしておけば、ショートコードを記述したページで文字が出力されます。
echo "PHPファイル読み込み";
今回はファイル名を固定にしていますが、ページ名をPHPファイル名とするなどルール化すれば応用のきく書き方だと思いますので、Wordpressの固定ページでPHPを実行したい時は是非お試し下さい。