先ほど公開したサーバー移転の記事。無事に旧サイトからのリダイレクトも終わり、ブログランキングなどいろいろなところの登録も変更し、これでよし!!と思った矢先にトラブル発生!!
私はよく「投稿予約(予約投稿?)」を使って決まった時間に書き溜めた記事を公開しています。今までは何も問題なく動作していましたが、ドメインキングに移行してから失敗するようになりました。
投稿予約はCronという自動実行ジョブというのが使われていて、これが動作していないのが原因だというところまでは分かったのですが・・・いろいろなサイトを見るも具体的な解決方法は見つからず(というか私の知識と能力では理解できず)途方に暮れておりました。
こうなったらWordPressのフォーラムなど公式なものを探すしかない!!と日本語ワードプレスのcodexでいろいろ探したら、
というページを発見。このページの下の方にcronに関する情報がありました。
このページはWordPressの設定情報である「wp-config.php」の内容とカスタマイズ方法がいろいろ掲載されています。「wp-config.php」の中にもcronの設定に関する記述があるのを初めて知った次第です。
そこで、
Cronの無効化と、Cronタイムアウト時間
DISABLE_WP_CRON を true に設定すると、cron は完全に無効化されます。
という記述があり、まさかねぇ・・・と思いながらファイルマネージャーで「wp-config.php」を開いてみたら、しっかりとDISABLE_WP_CRONがtrueになっていました。これを「false」にしたら正常に動作、これに対処するために費やした数時間を返せ~~って感じでした。
同じ現象でいろいろやってもだめだった方、ここの記述がある限り無効になってしまうようですからチェックしてみてくださいね。
以下簡単に解説しておきます(ドメインキングの管理画面は非常に分かりにくいですからね)
【ドメインキング】でWordPressのcron(自動タスク)を有効にする方法
- サーバーにログインしたら、「ドメイン」タブをクリックします
- 該当のドメインをクリックします
- 「ファイルマネージャー」をクリックします
- 「wp-config.php」をクリックします
- 画面一番下にある「テキストエディタで編集」をクリックします
- 「/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */」のすぐ上にある、「define(‘DISABLE_WP_CRON’, true);」を「define(‘DISABLE_WP_CRON’, false);」に書き換えて保存します
これで私の場合はcronが正常に動作するようになりました。めでたしめでたし・・・。
ちなみにcronをコントロールするようなプラグインが有効化されていたり、キャッシュ系のプラグインが有効化されていたりすると失敗することもあるようですから、ここの記述がない、もしくはfalseになっているのに動作しないという方はそれらのプラグインを停止してみるのも手ですね。
あとは、代替cronというのを動かす方法があるようで、先ほどの「/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */」のすぐ上に「define(‘ALTERNATE_WP_CRON’, true);」というのを追加すると動作するようになることもあるようです。ALTERNATE・・・確か何が何でもという英語だったような・・・恐ろしい感じの記述ですが、これで正しいようです。