2026年5月20日
2026年5月20日
WordPressでcronジョブが実行されない場合の対処法
はじめに
WordPressでは、バックアップの自動作成やスパムコメントの削除など、定期的なメンテナンスを簡単に行うことができます。これらの機能はcronジョブによって実行されますが、サーバー設定が原因でこれが正常に動作しないことがあります。
症状・背景
- wp-cron.phpへのアクセスが制限されている
- ホストのクロールリミッターによりwp-cron.phpがスケジューリングできない
- サーバーのcronジョブ設定が間違っている
- WordPressのプラグインまたはテーマがwp-cron.phpを無効化している
手順・設定方法
ステップ1: wp-cron.phpへのアクセス確認
# WordPressのルートディレクトリに移動する
cd /path/to/your/wp-site
# ファイルの権限を確認または修正する
ls -l wp-cron.php
# 必要であれば、wp-cron.phpファイルの読み取り・実行権限を設定する
chmod 755 wp-cron.php
# .htaccessファイルでwp-cron.phpへのアクセスを許可していることを確認する
cat .htaccess | grep -i 'allow'
ステップ2: ホストのクロールリミッターの調整
# ホストプロバイダーに連絡してクロールリミッターサービスを無効化または設定を緩和するように依頼する
# 代わりに、cronジョブを使用したwp-cron.phpの定期実行を設定する(手動設定が必要)
crontab -e
ステップ3: サーバー側のcronジョブ設定
# サーバーのcronジョブスケジュールにwp-cron.phpの実行を追加する
*/5 * * * * /usr/bin/wget -O - -q http://example.com/wp-cron.php?doing_cron > /dev/null 2>&1
# 確認または調整が必要な場合は、cronジョブ設定ファイルを開く
crontab -l | grep wp-cron
ステップ4: プラグインやテーマによるwp-cronの無効化チェックと復元
# サイトが使用しているプラグインまたはテーマでwp-cron.phpを無効化していないか確認する
grep -ri "define('DISABLE_WP_CRON', true);" /path/to/your/wp-site/*
# 必要であれば、この定義を削除またはコメントアウトし、保存する
注意事項
- ファイルの権限設定はサイトごとに異なる可能性があるため、適切な値を使用してください
- ホストプロバイダーによってクロールリミッターの調整や無効化が可能かどうか異なります
- cronジョブを手動で設定する際は、サーバーのスケジューラーソフトウェアの正しい形式とコマンドを使用してください
- wp-cron.phpの実行をプラグインやテーマによって無効化されている場合、必要な定期タスクが行われない可能性があります
まとめ
1. ファイルアクセス: wp-cron.phpへのアクセスは適切に設定されているか確認する。
2. クロールリミッター: ホストプロバイダーのクロールリミッター設定を調整または無効化する。
3. cronジョブ: サーバー側でwp-cron.phpの定期実行をスケジュールする。
4. プラグイン/テーマ確認: wp-cron.phpがプラグインやテーマによって無効化されていないか確認する。
関連記事: