記事やページ内でPHPコードの実行を可能にするプラグインは、runPHPが有名です。私もCPLやその他のプラグインをページで使用可能にするためにこのプラグインを使用していましたが、不具合もあり、バージョンがUpdateされる模様もないので同機能のプラグインを探していました。期待していた性能をもったPHP executionというプラグインを見つけましたので紹介いたします。
このプラグインを知ったのは、私の作成したCPL日本語版を詳細に紹介してくださっているcentreさんのプラグイン紹介ページにおいてです。試してみた結果、runPHPのような不具合も起きませんし、使い勝手も良く、2週間ほど使用して安定した機能を発揮しているので紹介記事を書くことにしました。
- 分離タグ(PHPコード宣言を分離して行うシンタックス)を使用してもrunPHPのように「PHP Parse error」も出ませんし、シンタックスに誤りがなければどのような形態のPHPコードも受け入れてくれるようです。
- runPHPでは、ページでのPHP実行を可能にするには各ページのrunPHPフィールドのチェックをオンにしなければなりませんが、このプラグインは各ページが表示される直前にPHPコードを監視し、存在する場合にはその実行を可能にします。したがって各ページごとに手を加える必要はありません。
[注意]:Fedora 11にインストールされたWordpress 2.8.4で動作確認をしています。Windows XPにプログラム開発用にインストールしているXAMPPではうまく働きませんでした(PHPコードが認識されない?)ので、注意してください。この場合には従来どおりrunPHPを使用してください。
上記のトラブルシューティングその他の情報については以下のページを参照してください。
PHP Executionのプラグインページ
プラグインページの「ヘルプ」-「プラグインブラウザ/インストーラ」を開いて「php execution」で検索すればこのプラグインが見つかるので右端の「インストール」をクリックしダウンロード画面を表示させ、「今すぐインストール」(自動インストール)を選択してください。
自動インストールができない場合には、「Wordspressのプラグインページ」をクリックするか、直接次のサイトにアクセスしてプラグインをダウンロードし、手動でインストールしてください。
PHP-execution
上記のファイルを解凍すれば、php-execution-pluginフォルダが作成されるので、それをWordpressのpluginsディレクトリに直接コピーしてください。
Adminでログインして、プラグインページにアクセスし、このプラグインを有効にします。そうすれば、左ウィンドウの「設定」欄に「PHP execution」が現れますので、そこにアクセスしてください。基本的には、デフォルトの設定で十分だと思います。
次の部分を確認してください。
Users & Permissionsの設定
PHPコードの実行を許可するユーザーを指定します。次のように許可しようとするユーザー(「Username」)に対してだけ「PHP Execution」カラムにグリーンのチェックが付いていることを確認してください。入っていなければ(赤い×)、「enable」ボタンを押して有効にしてください。意図しないユーザーにチェックが入っている場合には「disable」をクリックして無効にします。
Post Edit Observerの設定
PHP-executionのパーミッションを持っていないユーザーでもパーミッションをもっている他のユーザーの編集権を持っている(「Can edit others posts」にチェックの付いているユーザー)場合には、そのユーザーの記事にPHPコードを埋め込むことができます。Post Edit Observerを有効にしておくと、このような他人によるPHPコードの記述を防いでくれます。デフォルトで有効になっています。
他のPHP実行プログラム(例えばrunPHP)が有効になっている場合には、それを無効にしてください。次の様なスクリプトを新たな記事に埋め込んで「変更をプリビュー」ボタンをクリックして結果を確認してください。
<?php $test="Hello World"; ?> <p style="font-size:18px; font-family:'Times New Roman';font-style:italic;font-weight:bold;color:#FF0000;"> <?php print $test; ?> </p>
以下のような文字が表示されていればPHP executionは正常に稼動しています。
runPHP エラーの検索で、こちらに辿り着きました。
PHP executionで、無事解決しました。
心より、感謝申し上げます。
ピンバック: wordpress 内の記事若しくはWidgetでPHPを実行する « なんでもリンク帳
PHP executionを設定することでページの記事に書かれたPHPは動作したのですが、ブラウザのキャッシュを消し、記事ページを見ると、PHPが動作していませんでした。phpが書かれた部分が何も表示されません。Wordpressにログインすると記事ページのPHPが動作しました。解決方法がまったくわかりません。ご教授いただけたらと思います。
質問さんへ
解決方法は私にもわかりません。
この場合の解決法として提示できるのは、runPHPに代えることです。
runPHPの不具合と解決法は、プラグインrunPHPの不具合と対処法
をご覧ください。
ピンバック: WordPress備忘録 — 投稿記事・ページでPHPを実行するプラグイン