WordPressプラグイン「wp-koyomi」を改造してPHP7に対応させてみた。
2019年09月27日 12時00分 月齢:28.1[二十九日月] 潮汐:大潮
5年前に投稿 | WordPress | コメントはありません
3分ぐらいで読めます。
「wp-koyomi」は旧暦・六曜・24節気を表示させるプラグイン。以前、PHPのバージョンアップのときに動作しなくなってアンインストールしたのですが、やっぱり寂しくなってムリヤリ使ってみることにしました。
13年近く更新されていないプラグインなので、安全かどうかはわからないのですが、あまりコアに深く刺さるようなプラグインではないので自己責任で使います。
さて、まずはPHPコードの構文チェックを行いました。使ったのはこのサイト。
ここに現行プラグインのソースをぺたっと貼り付けて、どこで引っかかるのかを調べます。
まずはwp-koyomi.phpから。phpバージョンを7.2.6にしてチェック。すると、
Parse error: syntax error, unexpected 'new' (T_NEW) in CODE on line 67
Errors parsing CODE
と出ました。
if (class_exists('WpKoyomi') && class_exists('Qreki')) {
$WpKoyomi = & new WpKoyomi();
$Qreki = & new Qreki();
}
の部分です。
次にqreki.phpを。
No syntax errors detected in CODE
こちらは問題ないみたい。
調べると、PHP7から「参照渡し」というのが廃止になったとか…あまりよくわかってないですけど。
if (class_exists('WpKoyomi') && class_exists('Qreki')) {
$WpKoyomi = & new WpKoyomi();
$Qreki = & new Qreki();
}
を
if (class_exists('WpKoyomi') && class_exists('Qreki')) {
$WpKoyomi = new WpKoyomi();
$Qreki = new Qreki();
}
という感じに「&」を取ったらいいようです。
さっそく修正して、index.phpに埋め込んでみると、無事、旧暦や六曜が表示されるようになりましたー。
これで動作はするのですが、PHP Compatibility CheckerでスキャンオプションのPHPのバージョンをPHP7.3として確認すると警告が表示されました。せっかくの機会なのでこの部分もPHP7対応しましょう。
wp-koyomi.phpの83行目
function WpKoyomi() {
を
function __construct() {
とします。
qreki.phpの25行目
function Qreki() {
を
function __construct() {
とします。
つまり
ということが理由でした。
余談ですが、index.php以外のアーカイブページや個別記事のページにはどうやっても反映してくれません。日付取得あたりをいじったらイケるのかもしれないけど、自信ないなぁ。
古い記事・新しい記事
- 古い記事 [2019年09月21日]
- ← WordPressで、アイキャッチ画像がないときは指定した画像を表示させる。
- 新しい記事 [2019年09月29日]
- → WordPress YouTubeをレスポンシブに対応させる方法。
他にも「WordPress」カテゴリの記事はいかがですか。
- ウェブサイトをSSLへ。WordPressのhttp→https化。
- WordPress コメント本文とコメント投稿者の全角英数字を半角に、半角カタカナを全角に変換する。
- WordPressのビジュアルエディタ、右に謎の空白ができたので対策した。
- WordPress3.0を少しだけさわってみた。
- WordPressで年齢を自動更新する仕組みがおもしろくて実装してみた。
- WordBench京都(2018年8月)に参加してみた。
- WordPressのコメント欄で使えるタグをさらに制限する。
- WordPressにメタタグのプラグインAdd-Meta-Tagsを使う。
- WordPress2.8 リリース。変更点は?
- WordPressプラグイン「Add Meta Tags」の文字化けを修正する。