言語(PHP他)PHPWordPress
更新日 : 2020年9月1日
投稿日 : 2020年5月28日

WordPress5.4にしたら予約投稿設定で-9時間になった話

WordPress5.4にしたら予約投稿設定で-9時間になった話の画像

こんにちわ、PHPエンジニアのエンジニア婦人(@naho_osada)です。
私はPHPエンジニアとして7年~の経験があります。WordPressは2年半~の経験があります。その他、jQuery、HTML、CSSも使用します。
ここでは主に過去に納品した案件や自サイト運営(エンジニア婦人ノート)で遭遇したことについて書いています。

WordPressは予約投稿の仕組みがありますね。

これがどうも、バージョンアップをしてから正常動作していないことに気付きました。予約時間を設定すると「-9時間」になる。

午前10:00公開設定にしたいのに、午前1:00公開設定になってしまう…

+9時間で午後7:00予約にすれば午前10:00公開になりますが、それでは根本的解決にならないので、調べてみました。

WordPressの予約投稿エリア

原因は「特になし」

まずはWordPressの設定画面から。
「設定>一般」の中に「タイムゾーン」の設定をするところがあります。
初期構築時に「東京」になっているはずだけど、バージョンアップで変わってしまったのか?

WordPress管理画面の「設定>一般」にあるタイムゾーン設定

特にそのようなことはありませんでした。東京のままでした。

私の制作したWordPressテーマ「Nao Light-NAOT-」では、念のためテーマ内でもタイムゾーンの設定をしています。他サイトのRSSを読み込んでその時刻を表示しようとするときなどに表示時刻が-9時間されてしまうことがあったからです。(参考:WordPressで時差が出た!?date関数を疑って!|エンジニア婦人ノート

これが何かの改修をしたときに消してしまった?記憶にないけど…と思ってみてみますが、こちらも特に問題なし。

date_default_timezone_set('Asia/Tokyo');

では、なぜ予約投稿の日時設定が正常に動作しないのか?

結論「WordPressの設定画面から再設定が必要」

「WordPressのリンクがおかしいときは、管理画面の「設定>パーマリンクの設定」を開き、何もせずに「変更を保存」をクリックして、パーマリンクの再設定をしましょう。」

よくある話です。何かの操作をしてリンクが存在しなくなったらまずやってみようという。

この予約時間も同じでした。

「設定>一般」でタイムゾーンなど特に触らず「変更を保存」をクリックする。

これで予約投稿の日時が日本時間で正常動作するようになりました。

バージョンアップでデータベースの設定情報が一部初期化されたのかもしれませんね。設定上は東京でも正しく反映するには再設定がいる場合があった、と。
(更新時に「データベースを更新しています…」という表示があった気がする)

まとめ

  • WordPressのバージョンアップで予約投稿が正常に動作しなくなったら、「設定>一般」で何もせずに「変更を保存」をクリック!