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」カテゴリの記事はいかがですか。
- 「Kansai WordPress Meetup@京都」に参加してきた。
- WordPressプラグイン「Table of Contents Plus」のカスタマイズ。
- WordPressのテーマファイル「white-album」
- WordPressで半角カナ・全角英数字を変換するのを、functions.phpに書く。
- ワードプレスの「P」って、大文字なのかと今さら気づいたので。
- WordPressで同じカテゴリーの最新記事を数件表示させる方法。
- WordPressで記事の中にPHPのコードを書くと、下書き保存もプレビューもできずに501エラー。
- WordPressの文字コードをutf8からutf8mb4に変換した。
- WordPress3.0で、画像のalt属性とtitle属性を入れ替える。
- WordPress2.7で日本語の入力ができない。