副業のススメ

WordPressの予約投稿が失敗し続ける本当の原因|ジョブスケジューラーだけでは直らない場合の解決策【ConoHa WING】

副業のススメ
この記事は約4分で読めます。
記事内に広告が含まれています。
スポンサーリンク

「予約投稿したのに、時間になっても公開されない。」

私はこの問題で3ヵ月近く悩みました。

ネットで調べると「ConoHaのジョブスケジューラーを5分おきに変更すれば直る」という情報が多い。実際に変更してみたけど、直らなかった。

結論から言うと、本当の原因はループバックリクエストが403エラーで弾かれていたことでした。wp-config.phpに1行追加したら解決しました。

ジョブスケジューラーを変更しても直らなかった方は、この記事の手順を試してみてください。

WordPressの予約投稿はどうやって動いているのか

WordPressの予約投稿は、サイト内部の自動処理(WP-Cron)が動かしています。これがセキュリティ設定に弾かれると、時間になっても公開されない状態になります。

対処法① ジョブスケジューラーを5分おきに変更する

まずはこちらから試してください。ConoHaのジョブスケジューラーの実行間隔が粗いと、予約時刻とのタイミングがズレて失敗することがあります。

① ConoHaの管理画面を開く

https://manage.conoha.jp にログインして、上部メニューの「WING」を選択します。

② サーバー管理→ジョブスケジューラーを開く

左サイドバーの「サーバー管理」をクリックします。メニューの中の「ジョブスケジューラー」→「WordPress Cron」をクリックします。

ConoHaジョブスケジューラーの場所

③「分」の設定を確認する

「WordPress Cron」の「」の欄を見てください。0 になっていたら要変更です。これは「毎時0分だけ動く」=1時間に1回しか実行されないという意味です。

ジョブスケジューラーの分の設定

④ 分の設定を「*/5」に変更する

「分」の右の✏️をクリックして、0 を消して */5 と入力します。「5分ごとに実行する」という意味です。

*/5に変更する

保存して、左下に「成功しました。cron設定変更」と表示されれば完了です。

設定変更成功

これで直った場合はOKです。直らなかった場合は次の手順へ進んでください。


⚠️ 以降の作業を始める際は、必ず事前にバックアップをしてください。 wp-config.phpの編集を誤るとサイトが表示されなくなる場合があります。ConoHa管理画面 → サーバー管理 → 自動バックアップ で、直近のバックアップが取れているか確認してから進めてください。バックアップがない状態での作業はおすすめしません。


対処法② wp-config.phpに1行追加する(本当の解決策)

ジョブスケジューラーを変更しても直らなかった場合、ループバックリクエストが失敗している可能性が高いです。

ループバックとは、WordPressがWP-Cronを動かすために「自分自身のサイトにHTTPリクエストを送る」仕組みのことです。セキュリティ系の設定がこれを403エラーで弾いてしまうと、予約投稿が動かなくなります。

ALTERNATE_WP_CRONという設定を追加すると、ループバックを使わない別の方法でWP-Cronが動くようになります。プラグイン不要・wp-config.phpへの1行追加だけで完了します。

① ConoHaのファイルマネージャーを開く

ConoHa管理画面 → サイト管理ファイルマネージャー をクリックします。

② wp-config.phpを開く

ファイル一覧の中から wp-config.php を右クリック → ファイル編集 → CodeMirror を選択します。

③ 追加する場所を探す

Ctrl+F で検索バーを開き、まず以下を検索してください。

That's all, stop editing

見つかった場合:その行(/* That's all, stop editing! Happy publishing. */)の直前に、1行追加(挿入)します。

見つからなかった場合:代わりに

ABSPATH

で検索してください。(ABSPATH) の直前に1行追加(挿入)します。

※追加する場所はどちらの方法でも同じです(見つけた行の「上」に1行挿入)。

④ 1行追加(挿入)して保存する

以下の1行を追加します。どちらの方法で場所を見つけた場合も、追加する内容は同じです。

define('ALTERNATE_WP_CRON', true);

追加後はこのような状態になります。

define('ALTERNATE_WP_CRON', true);

/* That's all, stop editing! Happy publishing. */

「保存して閉じる」をクリックして完了です。

あわせて確認しておくこと

WordPressの管理画面で「設定」→「一般」→「タイムゾーン」が東京になっているかも確認しておきましょう。ここがズレていると予約時刻がおかしくなります。

まとめ

症状原因解決策
予約投稿が失敗するジョブスケジューラーの実行間隔が粗い「分」を */5 に変更
変更しても直らないループバックリクエストが403エラーwp-config.phpに ALTERNATE_WP_CRON を追加
  1. ConoHa管理画面→サーバー管理→ジョブスケジューラーの「分」を */5 に変更
  2. 直らない場合は wp-config.php に define('ALTERNATE_WP_CRON', true); を追加

プラグイン不要・無料で完了します。同じ症状で悩んでいる方はぜひ試してみてください。

ブログの技術的な問題が解決したら、次は収益化も整えておきたいですよね。アドセンス収益化の手順はこちらにまとめています➡GoogleAdSense収益化の手順!初心者でも審査に通るコツ

スポンサーリンク

コメント