「予約投稿したのに、時間になっても公開されない。」
私はこの問題で3ヵ月近く悩みました。
ネットで調べると「ConoHaのジョブスケジューラーを5分おきに変更すれば直る」という情報が多い。実際に変更してみたけど、直らなかった。
結論から言うと、本当の原因はループバックリクエストが403エラーで弾かれていたことでした。wp-config.phpに1行追加したら解決しました。
ジョブスケジューラーを変更しても直らなかった方は、この記事の手順を試してみてください。
WordPressの予約投稿はどうやって動いているのか
WordPressの予約投稿は、サイト内部の自動処理(WP-Cron)が動かしています。これがセキュリティ設定に弾かれると、時間になっても公開されない状態になります。
対処法① ジョブスケジューラーを5分おきに変更する
まずはこちらから試してください。ConoHaのジョブスケジューラーの実行間隔が粗いと、予約時刻とのタイミングがズレて失敗することがあります。
① ConoHaの管理画面を開く
https://manage.conoha.jp にログインして、上部メニューの「WING」を選択します。
② サーバー管理→ジョブスケジューラーを開く
左サイドバーの「サーバー管理」をクリックします。メニューの中の「ジョブスケジューラー」→「WordPress Cron」をクリックします。

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

④ 分の設定を「*/5」に変更する
「分」の右の✏️をクリックして、0 を消して */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 を追加 |
- ConoHa管理画面→サーバー管理→ジョブスケジューラーの「分」を
*/5に変更 - 直らない場合は wp-config.php に
define('ALTERNATE_WP_CRON', true);を追加
プラグイン不要・無料で完了します。同じ症状で悩んでいる方はぜひ試してみてください。
ブログの技術的な問題が解決したら、次は収益化も整えておきたいですよね。アドセンス収益化の手順はこちらにまとめています➡GoogleAdSense収益化の手順!初心者でも審査に通るコツ

コメント