WordPressの固定ページでPHPを実行する
WordPressの投稿や固定ページの中でPHPを実行させたいときはないでしょうか。
管理画面から、phpのコードを記事に記述して保存しても、
PHPの場合
<?php print “hello world!”; ?>
といった具合に、そのまま表示されてしまうと思います。
ここでは投稿・固定ページでPHPを実行させる方法を紹介します。
実行方法
投稿・固定ページに記述されたPHPを認識して、実行させるプラグインがあるのでそれを使う方法です。
PHPを実行させるプラグインは、
- runPHP
- Exec-PHP
- Executable PHP widget
などいくつかありますが、調べて見たところ「Exec-PHP」がテキストウィジットでも利用できるとのことなので、こちらを紹介いたします。
(補足ですが、ウィジットで利用したいだけなら「Executable PHP widget」なんていうプラグインもあります。また、runPHPは、JavaScriptを実行させるようにすることも出来ます)
設定自体は簡単ですが、いくつか注意事項があるのでプラグインを入れただけで満足しないようにしましょう。
まず、プラグインをインストールしましょう。
管理画面のプラグインへアクセスし、新規追加から「Exec-PHP」で検索してインストールします。
もしくは、https://wordpress.org/plugins/exec-php/よりファイルをダウンロードしてサーバのpluginsフォルダにアップロードします。
インストール後は、有効化をしてください。
有効化が終わったら、早速、記事投稿画面にアクセスしましょう。
そうすると、以下の警告文が表示されていると思います。
この警告文は、訳すと
PHPコードが含まれていませんので警告画面が出ていますが無視して消すこともできます。
この警告文は、ユーザープロフィールでオフに出来ます。
というようなことが書いてあります。
まぁ、そのままでもよいのですが、毎回出てくると気になるのでオフにしてしまいましょう。
管理画面 > ユーザ > あなたのプロフィール の一番下の「Exec-PHP Settings Disable WYSIWYG Conversion Warning」にチェックを入れてプロフィールを更新してください。
これで警告文が表示されなくなりましたので、投稿フォーム戻って先ほどのhello worldのPHPを記述して公開してみましょう。
っと、言いたいところですが、ここに注意事項があります。
PHPを記述する際は、必ず「テキスト」モードにしてください。
ビジュアルモードのままだと、PHPの記述がそのまま表示されてしまいます。
問題なければ、以下のとおりphpが実行されていると思います。
補足
この記事を書く際に、キャプチャ取りながら試したときに、
Parse error: syntax error, unexpected T_STRING in/XXXXX/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d codeon line 1
というエラーが表示されました。
どうもPHPの記述に全角スペースなどのゴミが入ってしまっていたようです。
パスが丸見えなので、PHPのエラーを非表示にするなどしておいたほうが良いかと思います。
エラーを表示させたくないときは、
<?PHP error_reporting(0); ?>
と記述しておけばOKです。
ただ、このままだと不具合が発生したときにどういうエラーなのかがわからないので、注意してください。
他にも、プラグイン「tinyMCE」を利用していると<や>が&lt;や&gt;に勝手に変換されてしまうので、一緒に使う場合は、注意が必要みたいです。
(回避策はあるみたいなのでgoogle先生に尋ねてもらえればと思います。
コメント一覧
コメントはありません