【解決】WordPressの予約投稿が失敗する原因と対策まとめ
WordPressで記事を予約投稿しようとしたのに、指定した時間になっても公開されない…。そんなトラブルに遭遇したことはありませんか?
この記事では、WordPressの予約投稿が失敗する原因と、その解決策をわかりやすく解説します!
目次
1. WP-Cron(疑似cron)の動作不良
WordPressの予約投稿は「WP-Cron」という機能を使っています。しかし、これは サイトに訪問者があったときにのみ実行される 仕組みなので、アクセスが少ないと実行されないことがあります。
解決策: サーバーのcronを利用する
WP-Cronを無効にして、サーバーの本当のcronジョブを使うと安定します。
wp-config.php
に以下を追加:define('DISABLE_WP_CRON', true);
- サーバーの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のタイムゾーン設定がズレている
予約投稿は サイトのタイムゾーン設定に基づいて実行 されます。設定がズレていると、意図しない時間に投稿されることがあります。
解決策: タイムゾーンを確認
- WordPress管理画面 →「設定」→「一般」
- 「タイムゾーン」を 「UTC+9」ではなく「東京」 に設定
- 変更を保存
これで、正しい時間に予約投稿されるようになります。
4. WordPressのバージョンが古い
WordPressの古いバージョンでは、予約投稿の不具合が発生することがあります。
解決策: 最新バージョンに更新
- WordPress本体、テーマ、プラグインを 最新バージョン にアップデート
- 更新前に バックアップを取る ことを忘れずに!
5. プラグインやテーマの競合
特定のプラグインやテーマが wp-cron.php
の実行を邪魔している場合があります。
解決策: 一時的にプラグインを無効化
- すべてのプラグインを無効化 し、予約投稿が動くか確認
- 1つずつプラグインを有効化して、どれが影響しているか特定
- 問題のあるプラグインの代替を探すか、設定を見直す
また、テーマの影響も考えられるため、一時的に デフォルトテーマ(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 プラグインを使う
- 「WP Crontrol」プラグインをインストール
- 「ツール」→「Cronイベント」に移動
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の予約投稿が正常に動作するようになるはずです!
同じトラブルに悩んでいる方は、ぜひ参考にしてみてください!