WP Crontrol

説明

WP Crontrol を使用すると、WP-Cron システムで起こっていることを表示して制御できます。 管理画面から、以下を実行できます。

  • 引数、スケジュール、コールバック関数、そして次回の予定時期とともに、すべての cron イベントを表示します。
  • Cron イベントの編集、削除、および即時実行。
  • 新しい Cron イベントの追加。
  • cron イベントの一括削除
  • 任意の cron スケジュールの追加と削除
  • cron のイベントリストを CSV ファイルで出力。

WP Crontrol はタイムゾーンを認識し、アクションのないイベントやスケジュールに間に合わなかったイベントを警告します。また、cron システムが機能していないように見える場合(例えば、サーバーがスケジュールされた cron イベントを実行するために接続できない場合)には、警告メッセージを表示します。

使い方

  1. Cron イベントを管理するには、ツール -> Cron イベントメニューに移動します。
  2. cron スケジュールを管理するには、設定 -> Cron スケジュールメニューに移動します。

他のプラグイン

他にも開発者向けのプラグインをいくつか管理しています。ぜひご覧ください。

  • Query Monitor は WordPress 開発者向けのツールパネルです。
  • User Switching は、WordPress のユーザーアカウントを瞬時に切り替えることができます。

スクリーンショット

  • Cron イベントの修正、削除、実行が可能

  • 新しい cron イベントの追加が可能

  • 新しい cron スケジュールを追加して、プラグイン開発者にイベントをスケジュールするときのオプションを与えることができます。

FAQ

このプラグインは、PHP 8 で動作しますか?

Yes, it’s actively tested and working up to PHP 8.1.

「サイトの WP-Cron システムへの呼び出しが頻発する問題がありました。」というエラーが表示されます。どうすればいいですか?

You can read all about problems spawning WP-Cron here.

cron イベントがスケジュールに間に合わないことがあるのはなぜですか?

スケジュールを逃した cron イベントについては、こちらですべて読むことができます。

cron イベントを削除しても、すぐに元に戻ることがあるのはなぜですか?

そのイベントがプラグインによって追加されている場合、そのプラグインはイベントが欠けていることを確認するとすぐにイベントを再スケジューリングしている可能性が高いです。残念ながら、WP Crontrol ではこの問題を解決することはできません。

cron イベントを削除しても大丈夫ですか?

これは完全にイベントに依存します。お気に入りの検索エンジンでイベント名を検索すると、そのイベントがどのプラグインに属しているかがわかりますので、その上で削除するかどうかを判断してください。

イベントのアクションが「なし」と表示されている場合は、通常は削除しても問題ありません。アクションのないイベントの詳細については、他の FAQ を参照してください。

一部の cron イベントを削除できないのはなぜですか?

WordPress コアソフトウェアは、その機能の一部に cron イベントを使用しており、これらのイベントを削除すると WordPress がすぐに再スケジュールしてしまうため、削除することはできません。このため、WP Crontrol では、WordPress コアからこれらの永続的なイベントを削除することはできません。

cron イベントのアクションに「なし」が表示されているのはどういう意味ですか?

これは、cron イベントが指定された時間に実行されるようにスケジュールされているが、イベントが実行されたときにトリガーされる機能がないため、イベントが役に立たないことを意味します。

これは、プラグインを無効にしたときに、その cron イベントをクリーンアップしないプラグインが原因であることが多いです。お気に入りの検索エンジンを使ってイベント名を検索すると、どのプラグインに属しているかがわかりますので、その上で削除するかどうかを決めてください。

cron イベントの次の実行時間や再帰性を変更するにはどうすればいいですか?

イベントの横にある「編集」リンクをクリックすると、cron イベントの時間や頻度を変更することができます。

URL をリクエストする cron イベントを作成するにはどうすればいいですか?

ツール → Cron イベント → 新規追加の画面から、WordPress の HTTP API を使って URL を取得する PHP を含んだ cron イベントを作成します。例えば、以下のようになります。

wp_remote_get( 'http://example.com' );

「どのユーザーが PHP cron イベントを管理できますか?」を参照してください。どのユーザーが PHP cron イベントを作成できるかについての FAQ。

cron イベントに変更を加えても保存されないのはなぜですか?

cron イベントを編集する際の問題点についてはこちらをご覧ください。

cron イベントのリストをエクスポートすることはできますか?

はい、cron のイベント一覧画面の「Export」ボタンから、イベント一覧の CSV ファイルをエクスポートできます。このファイルは任意の表計算アプリケーションで開くことができます。

自サイトで実行されたすべての cron イベントの履歴ログを見ることはできますか?

まだですが、近いうちにこの機能を追加したいと考えています。

cron イベントやスケジュールの編集・追加・削除の履歴ログを見ることはできますか?

はい。優れた Simple History plugin には、WP Crontrol 経由で実行されたアクションのログを取るためのサポートが組み込まれています。

新しい cron スケジュールを追加しどの様に使用しますか?

Cron のスケジュールは、定期的に実行されるイベントをスケジュールするために WordPress やプラグインで使用されます。 イベントの間隔は、WordPress コアまたはプラグインによって提供され、使用される必要があります。 たとえば、多くのバックアッププラグインは定期的なバックアップをサポートしています。 毎週のバックアップを行うには、WP Crontrol に毎週の cron スケジュールを入力すると、バックアッププラグインはイベントの間隔としてそれを利用できます。

新しい cron イベントを作成するには?

定期的に実行される cron イベント機能を取得するには、2つのステップがあります。 最初のステップは、WordPressにフックについて伝えることです。 これは、WP Crontrol が提供するために作成された部分です。 2番目のステップは、フックが実行されたときに関数を呼び出すことです。

ステップ1: フックを追加する

ツール → Cron イベント の管理画面で、「新規追加」をクリックし、フックの詳細を入力します。通常の PHP 変数の命名規則に準拠したフック名にするのが最良です。イベントスケジュールは、フックが実行される頻度です。適切な間隔が表示されない場合は、設定 → Cron スケジュールの管理画面で間隔を追加してください。

ステップ2: 関数の記述

この部分はPHPコードで (例えば、テーマのfunctions.phpファイルで) 実行されます。フックを実行するために、WordPress はアクションを実行します。このために、このアクションが実行されたときに実行する関数を WordPress に伝える必要があります。次の行はこれを実現します:

add_action( 'my_hookname', 'my_function' );

次のステップは、関数を書くことです。 ここに簡単な例があります:

function my_function() {
    wp_mail( 'hello@example.com', 'WP Crontrol', 'WP Crontrol rocks!' );
}

新しい PHP cron イベントを作成するにはどうすればよいですか ?

ツール → Cron イベントの管理画面で、「新規追加」をクリックします。
表示されたフォームで「PHP Cron Event」を選択し、スケジュールと次回の実行時間を入力します。イベントのスケジュールは、イベントが実行される頻度です。良い間隔が見当たらない場合は、管理画面の「設定」→「Cron スケジュール」で追加してください。「フックコード」領域には、cron イベントが実行されたときに実行されるべき PHP コードを入力します。PHPの開始タグ(<?php)は必要ありません。

「どのユーザーが PHP cron イベントを管理できますか?」を参照してください。どのユーザーが PHP cron イベントを作成できるかについての FAQ。

どのユーザーが PHP cron イベントとスケジュールを管理できますか ?

manage_options 権限を持つユーザーだけが cron イベントとスケジュールを管理できます。デフォルトでは、管理者のみがこの機能を備えています。

PHP の cron イベントを管理できるユーザーは?これは危険なのでしょうか?

edit_files 権限を持つユーザーのみが PHP の cron イベントを管理することができます。これは、ユーザーがサイト上のファイルを編集できない場合(プラグインエディタやテーマエディタなど)、PHP の cron イベントを編集したり追加したりすることができないことを意味します。デフォルトでは、管理者のみがこの機能を持ち、マルチサイトを有効にすると特権管理者のみがこの権限を持つようになります。

DISALLOW_FILE_MODSDISALLOW_FILE_EDIT の設定定数でファイル編集が無効になっている場合、どのユーザーも edit_files の権限を持つことができません。

そのため、WP Crontrol を有効にしても、任意の PHP コードを実行するのに必要なユーザーのアクセスレベルは変わりません。

WP-CLI コマンドは利用できますか ?

これまで WP Crontrol に含まれていた cron コマンドは WP-CLI (0.16以降) に含まれているため、このプラグインは WP-CLI コマンドを提供しません。 詳細については、wp help cronを参照してください。

プラグインのヘッダー画像の写真は誰が撮ったものですか?

この写真は、Michael Pardoが撮影したもので、パブリックドメインです。

評価

2022年3月10日
Hi, Thank you very much for this useful tool. It helped me to debug a cron problem. I also took the opportunity to clean up the cron jobs and delete those that were no longer useful. Best,
2022年2月13日
I was created self hosted plugins and would like to test for auto update. The WordPress original schedule itself is set to twice a day or every 12 hours. That is very long time. I have to wait for half day to see how test work and I think before I'm done with this I might died because old age. 😀 With this plugin, My task is a lot easier. I created new schedule time that will be work for every 10 minutes and modify **wp_version_check**, **wp_update_plugins** to be that recurrence. Remark: This is different than just click Run Now command or use direct function called to wp_update_plugins() and wp_maybe_auto_update() because I tested on local host with self signed SSL. The skip check SSL hook will work differently. And I can debug the whole process of WordPress auto update just like it's original process.
2022年2月7日
This plugin definitely goes to my top 10 plugins every WordPress developer should know. Thank you for your work on this!
2022年1月10日
Very useful to check the cron jobs events and schedules. Used this twice to add cron job to my plugins and to make sure my cron jobs works as expected.
2021年11月2日
Wow, this plugin is easy to use and gets the job done. Thank you so much!
110件のレビューをすべて表示

貢献者と開発者

WP Crontrol はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“WP Crontrol” は17ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“WP Crontrol” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。

変更履歴

1.12.1

  • Corrects an issue where an invalid hook callback isn’t always identified
  • Various code quality improvements

1.12.0

  • Fix the PHP cron event management.
  • More “namespacing” of query variables to avoid conflicts with other cron management plugins.

1.11.0

  • Introduced an Export feature to the event listing screen for exporting the list of events as a CSV file.
  • Added the timezone offset to the date displayed for events that are due to run after the next DST change, for extra clarity.
  • Introduced the crontrol/filter-types and crontrol/filtered-events filters for adjusting the available event filters on the event listing screen.
  • Lots of code quality improvements (thanks, PHPStan!).

1.10.0

  • Support for more granular cron-related error messages in WordPress 5.7
  • Several accessibility improvements
  • Warning for events that are attached to a schedule that is too frequent
  • More clarity around events and schedules that are built in to WordPress core
  • Add a Help tab with links to the wiki and FAQs

1.9.1

  • Fix the adding of new cron events when DISALLOW_FILE_EDIT is true.

1.9.0

  • Add filters and sorting to the event listing screen. Props @yuriipavlov.
  • Replace the “Add New” tabs with a more standard “Add New” button on the cron event listing page.
  • Switch back to using browser-native controls for the date and time inputs.
  • Add an error message when trying to edit a non-existent event.
  • Introduce an informational message which appears when there are events that have missed their schedule.
  • Fire actions when cron events and schedules are added, updated, and deleted.

1.8.5

  • Fix an issue with the tabs in 1.8.4.

1.8.4

  • Add a warning message if the default timezone has been changed. More information.
  • Fixed string being passed to strtotime() function when the Now option is chosen when adding or editing an event.

1.8.3

  • Fix the editing of events that aren’t currently listed on the first page of results.

1.8.2

  • Bypass the duplicate event check when manually running an event. This allows an event to manually run even if it’s due within ten minutes or if it’s overdue.
  • Force only one event to fire when manually running a cron event.
  • Introduce polling of the events list in order to show a warning when the event listing screen is out of date.
  • Add a warning for cron schedules which are shorter than WP_CRON_LOCK_TIMEOUT.
  • Add the Site Health check event to the list of persistent core hooks.

1.8.1

  • Fix the bottom bulk action menu on the event listing screen.
  • Make the timezone more prominent when adding or editing a cron event.

1.8.0

  • Searching and pagination for cron events
  • Ability to delete all cron events with a given hook
  • More accurate response messages when managing events (in WordPress 5.1+)
  • Visual warnings for events without actions, and PHP events with syntax errors
  • Timezone-related clarifications and fixes
  • A more unified UI
  • Modernised codebase

1.7.1

  • Correct the PHP.net URL for the strtotime() reference.

1.7.0

  • Remove the date and time inputs and replace with a couple of preset options and a plain text field. Fixes #24 .
  • Ensure the schedule name is always correct when multiple schedules exist with the same interval. Add error handling. Fixes #25.
  • Re-introduce the display of the current site time.
  • Use a more appropriate HTTP response code for unauthorised request errors.

1.6.2

  • Remove the ability to delete a PHP cron event if the user cannot edit files.
  • Remove the Edit link for PHP cron events when the user cannot edit the event.
  • Avoid a PHP notice due to an undefined variable when adding a new cron event.

1.6.1

  • Fix a potential fatal error on the cron events listing screen.

1.6

  • Introduce bulk deletion of cron events. Yay!
  • Show the schedule name instead of the schedule interval next to each event.
  • Add core’s new delete_expired_transients event to the list of core events.
  • Don’t allow custom cron schedules to be deleted if they’re in use.
  • Add links between the Events and Schedules admin screens.
  • Add syntax highlighting to the PHP code editor for a PHP cron event.
  • Styling fixes for events with many arguments or long arguments.
  • Improvements to help text.
  • Remove usage of create_function().
  • Fix some translator comments, improve i18n, improve coding standards.

1.5.0

  • Show the hooked actions for each cron event.
  • Don’t show the Delete link for core’s built-in cron events, as they get re-populated immediately.
  • Correct the success message after adding or editing PHP cron events.
  • Correct the translations directory name.

1.4

  • Switch to requiring cron event times to be input using the site’s local timezone instead of UTC.
  • Add the ability for a PHP cron event to be given an optional display name.
  • Better UX for users who cannot edit files and therefore cannot add or edit PHP cron events.
  • Terminology and i18n improvements.

1.3.1

  • Display a less scary looking message when DISABLE_WP_CRON is defined.
  • Correct the example code for cron event arguments.

1.3

  • Improvements to the UI.
  • More error detection when testing WP-Cron functionality.
  • Improve the capability checks for single site and multisite.
  • Lots of escaping and sanitising.
  • Fix various issues with multiple events with the same hook name.
  • Removed the WP-CLI commands, as these have now been added to WP-CLI core (see wp help cron for more info)

1.2.3

  • Tweaks to i18n and date and args formatting
  • Properly escape the crontrol_message query var (props Julio Potier)

1.2.2

  • Added wp crontrol run-event and wp crontrol delete-event WP-CLI commands
  • Clarify language regarding hooks/entries/events

1.2.1

  • Correctly display the local time when listing cron events
  • Remove a PHP notice
  • Pass the WP-Cron spawn check through the same filter as the actual spawner

1.2

  • Added support for WP-CLI
  • Removed some PHP4 code that’s no longer relevant

1.1

  • Bug fixes for running cron events and adding cron schedules
  • Added a cron spawn test to check for errors when spawning cron
  • Various small tweaks
  • WordPress 3.4 compatibility

1.0

  • Input of PHP code for cron events
  • Non-repeating cron events
  • Handles cron events with arguments

0.3

  • Internationalization
  • Editing/deleting/execution of cron events
  • More text, status messages, etc.
  • Allow a user to enter a schedule event in a human manner
  • Looks better on WordPress 2.5