WordPress 記事内部で PHP 実行プラグイン自分的まとめ
現在僕が使用している WordPress は 3.2です。
この記事がすべてのバージョンにおいて同じ結果ではないことをご承知おきください。
おそらく近いバージョンでは、参考になるのではないかと思います。
■実用可能と思える物
- Shortcode Exec PHP 1.31
TinyMCEを試用して記事を編集しているが、HTMLモードで追記した記事をビジュアルモードで再編集すると<?php ~ ?>までの記述がごっそり無くなってしまう問題もある。
セキュリティ周りの設定が特に何も無く、ユーザーレベルでの実行許可などの管理機能はない。 -
Grimp – PHP 0.1
Shortcode Exec同様TinyMCEを試用して記事を編集しているが、HTMLモードで追記した記事をビジュアルモードで再編集すると<?php ~ ?>とまでの記述がごっそり無くなってしまう問題もある。
セキュリティ周りの設定が特に何も無く、ユーザーレベルでの実行許可などの管理機能はない。 -
Inline PHP 1.2.2
コードの開始タグはで実行される。
php認識タグが<?php ~ ?>ではないのでエディタでコードが消失されることはないが、複数行にまたがるコードは1行に詰めて記述し直す必要がある。
■一部に問題はある物の動作自体はするもの
- Exec-PHP 4.9
実行には問題なし。
IE8使用時、WP管理画面からTinyMCEの設定画面を表示させると正常に表示しない問題が発生。
Firefoxでは、正常に動作できた。
■使用できない
- runPHP 2.2.2
インストールは出来るが、その後有効化できない。
プラグイン一覧にも表示されないため、実際の削除にはFTPなどで実ファイルの削除が必要となる。
動作もしていない。 -
PHP Execution 1.0.0
実行問題は無いので非常に惜しいが、管理画面でJava Scriptエラーが発生して管理画面の投稿処理が出来なくなっている。
このときの確認ブラウザは、IE8とFirefoxを使用して確認。 -
WP exec PHP 1.0
簡単なソースコードを実行させてみたものの正しい結果が得られませんでした。 -
Allow PHP in posts and pages
<?php ~ ?>を[php] ~ [/php] と記述さて使用します。
php認識タグが<?php ~ ?>ではないのでエディタでコードが消失されることはないが、複数行にまたがるコードは1行に詰めて記述し直す必要がある。
ただ、複数行のコードは正常に動作出来なかった。
僕は結局Inline PHPをを使用しています。
複数行コードを1行にまとめる作業は面倒ではありますが、操作中にコードが消える可能性があるものよりは安心して使用できます。
僕の理想としては、PHPのプログラムを記事中にガシガシ書いて動かせればと思っていました。
しかしそれを望むのは酷なようです。
そもそも、WordPressでは不正なコードを実行できないようにして処理してあるので、記事中に書かれたPHPコードがごっそり消されたとしてもそれはそれで正常な動作。
これを回避させるためにWordPress本体のソースコードを手を入れることも考え、修正ポイントも確認しました。
しかしこの作業を実行してしまうとWordPressをバージョンアップするたびに本体コードの修正をするのでは非常に面倒となるためこの方法は禁断の方法として考えて居ます。
もし複雑なコードを書くときは、別なファイルを作りそのファイルにコードを書き、InlinePHPなどを使ってそのPHPファイルを呼び出すようにするというのが一番管理的にしやすい方法ではないかと思います。
WordPressのテーマの管理では、関係のないファイルでも登録でき、管理することが出来ます。
この機能を使って実現させるのが一番スマートですね。
関連のありそうなエントリ