2013年8月3日

WordPressの固定ページでPHPファイルを読み込む

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を実行したい時は是非お試し下さい。

,

コメントを残す

メールアドレスが公開されることはありません。