Несомненным лидером для отладки WordPress крона всегда являлся плагин WP-Crontrol , через который можно было увидеть список запланированных и выполняющихся в данный момент задач или добавить новую задачу.
Но что делать, если вы не хотите ставить еще один плагин или вы заядлый линуксоид, который привык работать через командную строку? Тут на помощь приходит WP-CLI.
Установка WP-CLI
Скачайте файл wp-cli.phar, используя wget
или curl
:
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Убедитесь, что свежескачанный файл валидный и рабочий:
php wp-cli.phar --info
Для использования WP-CLI из командной строки (будете печатаь wp
) сделайте файл исполняемым и добавьте его в ваш PATH
:
chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/local/bin/wp
Если WP-CLI установлен корректно, то при вводе команды wp --info
вы должны получить примерно такой вывод:
PHP binary: /usr/bin/php5 PHP version: 5.5.9-1ubuntu4.14 php.ini used: /etc/php5/cli/php.ini WP-CLI root dir: /home/wp-cli/.wp-cli WP-CLI packages dir: /home/wp-cli/.wp-cli/packages/ WP-CLI global config: /home/wp-cli/.wp-cli/config.yml WP-CLI project config: WP-CLI version: 1.1.0
Как отлаживать
Чтобы вывести на экран вообще все имеющиеся задачи, вбейте:
wp cron event list
Вы увидите примерно такую картинку:
+--------------------------------+---------------------+--------------------+-----------------------+ | hook | next_run_gmt | next_run_relative | recurrence | +--------------------------------+---------------------+--------------------+-----------------------+ | w3_pgcache_cleanup | 2016-08-16 19:16:01 | now | 6 minutes | | w3_pgcache_prime | 2016-08-16 19:17:01 | now | 5 minutes | | w3_objectcache_cleanup | 2016-08-16 19:31:26 | 12 seconds | 16 minutes 40 seconds | | woocommerce_geoip_updater | 2016-09-01 16:30:00 | 2 weeks 1 day | 1 month | +--------------------------------+---------------------+--------------------+-----------------------+
Для удаления конкретной задачи используйте:
wp cron event delete woocommerce_geoip_updater
Для запуска ближайших заданий в режиме отладки:
wp cron event run --due-now --debug
Вы получите похожий вывод:
Debug (bootstrap): No readable global config found (0.006s) Debug (bootstrap): No project config found (0.007s) Debug (bootstrap): Loading packages from: /var/www/.wp-cli/packages/vendor/autoload.php (0.103s) Debug (bootstrap): ABSPATH defined: /var/www/ (0.104s) Debug (bootstrap): Begin WordPress load (0.104s) Debug (bootstrap): wp-config.php path: /var/www/wp-config.php (0.104s) Debug (bootstrap): Loaded WordPress (0.334s) Debug (bootstrap): Running command: cron event run (0.334s) Executed the cron event 'w3_pgcache_cleanup' in 0.022s. Executed the cron event 'w3_pgcache_prime' in 2.002s. Executed the cron event 'w3_objectcache_cleanup' in 1.673s. Success: Executed a total of 3 cron events.
Еще больше примеров использования утилиты WP-CLI смотрите на официальном сайте проекта.
Ссылки
Источник: https://www.kobzarev.com/wordpress/debug-wordpress-cron/