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にプラグインPopular Postsを入れてみた。
- WordPress→wp-rpsが気持ちいい
- WordPress Popular Postsを再び実装してみた。ウィジェットやショートコードを使わずに。
- WordPressプラグイン MoonPhaseの実装。
- WordPressで記事の中にPHPのコードを書くと、下書き保存もプレビューもできずに501エラー。
- WordPressのコメント欄に2chのトリップを表示させるプラグイン
- WordPressサイドバーのアーカイブ欄、日付を01日のように2桁にしてみた。
- WordPress WP-PageNaviプラグインの最適化
- WordPress YouTubeをレスポンシブに対応させる方法。
- WordPressに、human_time_diffで投稿からの日数を表示する。