Exec-PHPをPHP7で使う

我がご愛用Exec-PHPだけど、もう数年更新していない。
でもPHPは7になってしまった。
当然問題が起きたんですよ!
なので使えるようになるまでの方法を記載しておく。

下記の修正がめんどくさい人用に適用したものをプラグインとして公開しました!
自己責任でお願いします!
Exec-PHP remodel

では以下に修正を記載します!

『=& new クラス名』は使えない

『=& new』を全て『= new』に変換する。
PHP7からは使えなくなりました。
変えてもPHP5でも問題なく使えるから、気前よくプラグイン内全部変えちゃってください。

これだけで使えるようになる。完了。

ついでに不都合な部分を直す

ついでに今まで発見した不都合な部分を直していこう。
当然ながら全て『exec-php』以下を修正。

includes\runtime.php

42行目くらいのevalに構文エラーが出るけど、処理は走るwarninngなので頭に『@』つけてスルーにしておく。

@eval("?>$content<?php ");

『get_usermeta』を『get_user_meta』に変える

『get_usermeta』は推奨されない。現バージョンでは『get_user_meta』。
いずれタグが使えなくなって、原因がわからなくなる前に対処しておけばいいと思う。
includes\cache.php:行34

function &get_usermeta($user_id)

も含めて5か所すべて修正する。一括変換でOK。

moreタグが付くときの問題対応をプラグインにまとめる

どんな問題なのかは下記をご参考ください。
『Exec-PHPで<!--more-->があるとphp実行されない問題』
exec-php.phpの『require_once(dirname(__FILE__).'/includes/manager.php');』の後、下記を追加する。

function execphpstart($text) {
	return str_replace("< ?php","<?php",$text);
}
add_filter('the_content', 'execphpstart',1);

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です