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がプラグインやテーマによって無効化されていないか確認する。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ