web-dev-qa-db-fra.com

Exécuter la fonction avec le travail Linux cron dans Wordpress

Je sais que WordPress a un faux cron qui s'appelle ainsi quand un utilisateur visite la page.

register_activation_hook(__FILE__, 'my_activation');
add_action('my_hourly_event', 'do_this_hourly');

function my_activation() {
    wp_schedule_event(time(), 'hourly', 'my_hourly_event');
}

function do_this_hourly() {
    // do something every hour
}

Je veux utiliser linux cron comme ceci:

*/5 * * * * * /usr/local/bin/php/ /Path/to/file

Le problème est que si ce fichier est comme ceci:

<?php 

function do_something() {

  echo 'Hello World';

}

do_something(); 

La fonction "faire quelque chose" est appelée à chaque fois que je recharge la page. Ce dont j'ai besoin, c'est d'un moyen de spécifier avec linux cron afin que do_something () ne soit appelé que lorsqu'il est temps d'exécuter cron. Donc, le fichier devrait simplement avoir la définition de fonction de do_something () et ne devrait pas appeler la fonction directement.

<?php 

 function do_something() {

   echo 'Hello World';

 }
1
chap

Vos tâches cron ne sont exécutées que lorsque vous leur dites de le faire.

  • 1: minute (0-59)
  • 2: heures (0-23)
  • 3: jour (0-31)
  • 4: Mois (0-12 [12 == décembre])
  • 5: Jour de la semaine (0-7 [7 ou 0 == dimanche])
  • / path/to/command - Nom du script ou de la commande à planifier

* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

Mais il pourrait être possible de passer le nom de la fonction à votre PHP comme

1 2 3 4 5 /path/to/command arg1 arg2

Ensuite, dans votre fichier PHP, exécutez la tâche uniquement si l'argument a été passé à l'aide de $_SERVER ou $_GET.

1
jgraup

Il vous manque un élément clé.

Ajoutez ceci à votre wp-config.php: define( 'DISABLE_WP_CRON', true );

Voici quelques autres constantes utiles pour votre wp-config.php: https://Gist.github.com/MikeNGarrett/e20d77ca8ba4ae62adf5

1
MikeNGarrett