【解決】WordPressの予約投稿が失敗する原因と対策まとめ

WordPressで記事を予約投稿しようとしたのに、指定した時間になっても公開されない…。そんなトラブルに遭遇したことはありませんか?
この記事では、WordPressの予約投稿が失敗する原因と、その解決策をわかりやすく解説します!


目次

1. WP-Cron(疑似cron)の動作不良

WordPressの予約投稿は「WP-Cron」という機能を使っています。しかし、これは サイトに訪問者があったときにのみ実行される 仕組みなので、アクセスが少ないと実行されないことがあります。

解決策: サーバーのcronを利用する

WP-Cronを無効にして、サーバーの本当のcronジョブを使うと安定します。

  1. wp-config.php に以下を追加: define('DISABLE_WP_CRON', true);
  2. サーバーのcronジョブに以下を設定(例:5分ごとに実行) */5 * * * * wget -q -O - https://example.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1

これで、WordPressの予約投稿が正しく実行される可能性が高くなります。


2. キャッシュ系プラグインの影響

キャッシュ系プラグイン(WP Super Cache、W3 Total Cache、LiteSpeed Cache など)が wp-cron.php の実行をブロックしていることがあります。

解決策: キャッシュプラグインの設定を見直す

  • 一時的にキャッシュプラグインを 無効化 して試す
  • 「キャッシュ除外」設定で wp-cron.php を除外する
  • 「ページキャッシュの有効期限」を短めに設定(例:10分)

3. WordPressのタイムゾーン設定がズレている

予約投稿は サイトのタイムゾーン設定に基づいて実行 されます。設定がズレていると、意図しない時間に投稿されることがあります。

解決策: タイムゾーンを確認

  1. WordPress管理画面 →「設定」→「一般」
  2. 「タイムゾーン」を 「UTC+9」ではなく「東京」 に設定
  3. 変更を保存

これで、正しい時間に予約投稿されるようになります。


4. WordPressのバージョンが古い

WordPressの古いバージョンでは、予約投稿の不具合が発生することがあります。

解決策: 最新バージョンに更新

  • WordPress本体、テーマ、プラグインを 最新バージョン にアップデート
  • 更新前に バックアップを取る ことを忘れずに!

5. プラグインやテーマの競合

特定のプラグインやテーマが wp-cron.php の実行を邪魔している場合があります。

解決策: 一時的にプラグインを無効化

  1. すべてのプラグインを無効化 し、予約投稿が動くか確認
  2. 1つずつプラグインを有効化して、どれが影響しているか特定
  3. 問題のあるプラグインの代替を探すか、設定を見直す

また、テーマの影響も考えられるため、一時的に デフォルトテーマ(Twenty Twenty-Four など) に変更して試すのも有効です。


6. サーバーのWAFやmod_securityの影響

一部のレンタルサーバーでは、セキュリティ対策(WAFやmod_security)が wp-cron.php へのアクセスをブロックしていることがあります。

解決策: サーバーの設定を確認

  • サーバーの管理画面で WAF(Web Application Firewall)を一時的に無効 にして試す
  • wp-cron.php がブロックされていないか、エラーログを確認

7. 予約投稿を手動で実行する

もし、どの方法でも解決しない場合、手動で wp-cron.php を実行することで投稿できることがあります。

方法1: WP Crontrol プラグインを使う

  1. 「WP Crontrol」プラグインをインストール
  2. 「ツール」→「Cronイベント」に移動
  3. wp_cron を見つけて 手動実行

方法2: functions.php にスクリプトを追加

add_action('init', function() {
    if (isset($_GET['run_cron'])) {
        do_action('wp_cron');
        exit('Cron executed');
    }
});

ブラウザで https://example.com/?run_cron にアクセスすると、予約投稿が実行されます。


まとめ

WordPressの予約投稿が失敗する原因はさまざまですが、以下の手順で解決できる可能性が高いです。

WP-Cronの問題をサーバーのcronジョブで解決
キャッシュプラグインの設定を見直す
タイムゾーンを「東京」に設定する
WordPressやプラグインを最新バージョンに更新
プラグイン・テーマの競合をチェック
サーバーのWAF設定を見直す
手動で wp-cron.php を実行する

これらを試せば、WordPressの予約投稿が正常に動作するようになるはずです!
同じトラブルに悩んでいる方は、ぜひ参考にしてみてください!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です