Verwenden von Cron für mehrere Abfragen

Wenn ich in meiner single.php- Datei etwas ähnliches habe (als sehr einfaches Beispiel):

 $b = the_field('test2'); ?> $c = the_field('test3'); ?> $d = the_field('test4'); ?> $New_data = $a * $b * $c * $d; ?> 

Wie kann ich mithilfe von Cron $ New_data täglich und nicht bei jeder Seitenaktualisierung berechnen? In allen Cron-Tutorials, die ich gelesen habe, sagen sie, wp_schedule_event in der functions.php- Datei zu verwenden, aber ich bin nicht sicher, wie man das anwendet, da die Berechnungen auf dem angezeigten Post basieren und keine globale Berechnung.

Irgendwelche Vorschläge werden sehr geschätzt, stundenlang festgefahren!

Solutions Collecting From Web of "Verwenden von Cron für mehrere Abfragen"

Es klingt wie das, was Sie wirklich wollen, ist eine Vergänglichkeit. WP-Transienten sind eine Möglichkeit, die Ergebnisse einer Abfrage zwischenzuspeichern und ein Ablaufdatum für diesen Cache festzulegen.

So können Sie die Ergebnisse Ihres Beispiels 24 Stunden lang von oben zwischenspeichern. Wenn jemand diese Daten anfordert, während der Cache noch gültig ist, gibt er nur die Ergebnisse ohne Neuberechnung zurück.

Wenn jemand die Daten nach Ablauf Ihrer Cache-Zeit anfordert, führen Sie die Berechnung erneut aus und speichern das Ergebnis für weitere 24 Stunden zwischen.

Beispiel:

 if ( false === ( $special_query_results = get_transient( 'special_query_results' ) ) ) { // It wasn't there, so regenerate the data and save the transient $a = the_field('test1'); $b = the_field('test2'); $c = the_field('test3'); $d = the_field('test4'); $special_query_results = $a * $b * $c * $d; set_transient( 'special_query_results', $special_query_results, 24 * HOUR_IN_SECONDS ); } // Use $special_query_results as needed from here 

Weitere Informationen zu WordPress Transienten

AKTUALISIEREN

Aufgrund Ihrer weiteren Informationen benötigen Sie möglicherweise einen CRON, hier ein Beispiel:

 if ( ! wp_next_scheduled( 'update_acf' ) ) { wp_schedule_event( time(), 'daily', 'update_acf' ); } add_action( 'update_acf', 'update_my_acf_field' ); function update_my_acf_field() { // This is where you will do the logic that needs to be performed on a daily CRON }