Attivare cron chiamando wp-cron.php dalla riga di comando invece che con wget?
È possibile attivare wp-cron.php
utilizzando ad esempio $ php /percorso/verso/wordpress/wp-cron.php
invece di passare attraverso il metodo wget usando ad esempio wget -q -O - http://esempio.com/wp-cron.php>/dev/null 2>&1
?

Esaminando la documentazione all'interno del file wp-cron.php
sembra assolutamente possibile chiamarlo semplicemente con $ php wp-cron.php
:
/** * Uno pseudo-daemon CRON per la pianificazione delle attività di WordPress * * WP Cron viene attivato quando il sito riceve una visita. Nello scenario * in cui un sito potrebbe non ricevere abbastanza visite per eseguire le attività pianificate * in modo tempestivo, questo file può essere chiamato direttamente o tramite un server * CRON daemon per X numero di volte. * * Definire DISABLE_WP_CRON come true e chiamare questo file direttamente sono * azioni mutualmente esclusive e la seconda non si basa sulla prima per funzionare. * * La richiesta HTTP a questo file non rallenterà il visitatore che capita * di visitare quando il job cron deve essere eseguito. * * @package WordPress */
Un'altra cosa che puoi fare dalla riga di comando è utilizzare wp-cli per questo scopo.
$ cd /percorso/di/wordpress
$ wp cron event run --due-now
Per forzare l'esecuzione di un singolo cron indipendentemente dalla sua pianificazione impostata, esegui:
$ wp cron event run mio_evento_cron_personalizzato
Oppure come comando unico da usare in un crontab per l'esecuzione ogni ora piena + 15 minuti (14:15, 15:15, 16:15 ecc.):
15 * * * * cd /percorso/di/wordpress && wp cron event run --due-now > /dev/null 2>&1

@BarryChapman – Curl è fondamentalmente solo un'altra richiesta di pagina. Quindi potrebbe potenzialmente rallentare un po' il sito quando il cron viene eseguito.

@BarryChapman Immagino che qualsiasi codice che dipende da $_SERVER o altre variabili di sessione non gradirà essere chiamato dalla riga di comando. A parte questo, dovresti essere a posto

Vale la pena menzionare che wp-cli esegue il cron via HTTP. Non è assolutamente lo stesso che chiamare wp-cron da CLI PHP, perché ad esempio max_execution_time può influenzare le esecuzioni del cron. Se hai problemi con i task cron che scadono, consiglio di chiamare wp-cron.php direttamente, senza coinvolgere wp-cli.

Sì, è possibile attivare l'esecuzione dei cron semplicemente con $ php /percorso/di/wordpress/wp-cron.php
.
In alternativa puoi usare curl
:
*/10 * * * * curl http://esempio.com/wp-cron.php > /dev/null 2>&1
E puoi aggiungere la seguente riga al tuo wp-config.php
per disabilitare l'esecuzione dei cron tramite richieste HTTP:
define('DISABLE_WP_CRON', true);

Se stai utilizzando curl si tratta pur sempre di una richiesta HTTP, quindi probabilmente non è una buona idea disabilitare DISABLE_WP_CRON?

@Bananaapple - Chiamando direttamente wp-cron.php si aggira questo problema. Ma allo stesso tempo DISABLE_WP_CRON
impedisce che il cron venga attivato dai visitatori che navigano su qualsiasi pagina del tuo sito. Vedi https://kinsta.com/knowledgebase/disable-wp-cron/ e nei commenti del file nella mia risposta sopra Definire DISABLE_WP_CRON come true e chiamare questo file direttamente sono mutualmente esclusivi e quest'ultimo non si basa sul primo per funzionare
.
