WordPressプラグイン「wp-koyomi」を改造してPHP7に対応させてみた。
2019年09月27日 12時00分
月齢:28.1[二十九日月] 潮汐:大潮
6年前に投稿 | 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に実装されているはずのレスポンシブイメージが機能しないのでもう一度確認してみた。
- WordPressで記事を保存しようとすると501エラー! の解決法。
- WordPressで記事の中にPHPのコードを書くと、下書き保存もプレビューもできずに501エラー。
- WordPressの文字コードをutf8からutf8mb4に変換した。
- WordPressで固定ページをホームにするとき、タイトルを非表示にする。
- WordPressテーマ「twenty sixteen」を少しいじってみた。
- WordPressをPHP7.1に対応させるために古いプラグインをあきらめた。
- WordPressを3.9.2にしてみた。
- TinyMCEビジュアルエディタのフォントを明朝体から好きなフォントへ変更する。
- WordPressのページタイトルを「記事名→サイト名」の順に変更する。
