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」カテゴリの記事はいかがですか。
- WordPressで特定の文字が自動変換されるのを防ぐためfunctions.phpに記述。
- WordPressサイドバーのアーカイブ欄、日付を01日のように2桁にしてみた。
- ワードプレスの「P」って、大文字なのかと今さら気づいたので。
- WordBench京都(2018年8月)に参加してみた。
- WordPressのコメント欄、ミステリーマンのアバターを好きなものに変更する。
- WordPressコメント欄URLを自動的にハイパーリンクにする。
- WordPressのデフォルトユーザー「admin」を削除する。
- WordPressテーマ「twenty sixteen」を少しいじってみた。
- WordPressプラグイン「Table of Contents Plus」のカスタマイズ。
- WordPressに「この記事を読むのに必要な時間の目安」を表示してみた。