Linux + Wordpress: как запустить функцию из задания Linux Cron? - PullRequest
0 голосов
/ 28 мая 2019

Я создал Linux Cron Job вроде:

0 0 * * * home/www/wp-content/themes/my_theme/functions.php

В файле wp-content / themes / my_theme / functions.php есть функция, которую мне нужно вызвать из задания cron: do_something ().

Как видите, команда: home/www/wp-content/themes/my_theme/functions.php неверна, поскольку мне нужно указать свою функцию: do_something ().

Мой вопрос: как изменить команду задания для выполнения функции do_something ().

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

(1) Не вызывайте файл functions.php напрямую для задания cron, если у вас есть особая функция для wordpress, но сначала настройте среду wordpress с помощью двух команд, которые я упоминал в предыдущем вопросе, который вы опубликовали.

<?php 
define('WP_USE_THEMES', false);
require('./wp-blog-header.php'); 
//ensure correct *path* for your wp-blog-header.php file
//now you can use function you want from functions.php file directly
do_something();
?>


(2) Если ваша функция do_something () не предназначена для какой-либо задачи, связанной с WordPress, просто скопируйте эту функцию и используйте ее в файле cron, например, mycron.php

(3)Вы спросили, где поставить этот предложенный код.Поместите предложенный код в начало вашего файла mycron.php.

0 голосов
/ 29 мая 2019

вам не хватает пути PHP, поэтому он должен работать следующим образом:

  • Найдите ваш бинарный файл PHP, выполнив следующую команду:
whereis php
  • Добавьте вашу функцию в пустой файл .php, например. cron-functions.php
  • Отредактируйте свой cron так, чтобы он выглядел так:
# Replace "/path/to/php" bellow with your PHP binary location
0 0 * * * /path/to/php home/www/wp-content/themes/my_theme/cron-functions.php

Если вам интересно, вы также можете передавать аргументы или вызовы функций через cron, например:

# Pass function name as an argument, in this case our sample do_something() function.
0 0 * * * /path/to/php home/www/wp-content/themes/my_theme/cron-functions.php do_something

И это должно быть довольно много, иногда у вас могут возникнуть проблемы с разрешениями пользователей для запуска процессов cron или PHP CLI, если это так, и это не работает, просто дайте нам знать, чтобы мы могли помочь вам.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...