Dies ist mehr eine Anfrage für eine Code-Überprüfung als ein Fehler. Die Frage ist, ob dies der "richtige Weg" zum Schreiben der folgenden Funktion ist.Wie kann man die Anzahl der Posts in WordPress ändern?
Was ich möchte ist eine php Cron-Task, die überprüfen würde, ob die Anzahl der Beiträge im Blog geändert hat, und wenn ja - zum Löschen der Homepage zwischengespeichert HTML.
Ich kann das WP Crontrol
Plugin verwenden, um eine PHP Cron-Aufgabe einzurichten. Was ich brauche, sind die Funktionen, um eine globale Variable zu erstellen, die irgendwo in der Anzahl der Posts gespeichert wird (ich habe die wp_options-Tabelle verwendet), und jedes Mal, um den Server nach der aktuellen Anzahl der Posts zu fragen. Und wenn es einen Unterschied gibt, den Cache zu löschen. Unten ist die Funktion, die ich am Ende geschrieben habe. Ist es sinnvoll, oder gibt es etwas, was ich anders machen sollte (/ besser?)
if_new_posts_delete_homepage_cache = function() {
// get current number of posts
// https://codex.wordpress.org/Function_Reference/wp_count_posts
$count_posts = wp_count_posts();
$new_number_of_posts = $count_posts->publish;
// https://developer.wordpress.org/reference/functions/get_option/
// set number of posts for the first time
// some code that adds the current
$old_number_of_posts = get_option("number of published posts", 0);
// if the option is not set - update it
// https://codex.wordpress.org/Function_Reference/add_option
if($old_number_of_posts == 0) {
add_option("number of published posts", $new_number_of_posts);
$old_number_of_posts = $new_number_of_posts;
}
if($old_number_of_posts < $new_number_of_posts) {
unlink(dirname(__FILE__) . "/wp-content/cache/supercache/sitename.com/" . 'index.html.gz');
}
}
if_new_posts_delete_homepage_cache();
Danke @Shivam, sehr interessant. Wenn ich fragen darf, wie haben Sie von "transition_post_status" erfahren? –
Ich erinnerte mich, das in der Vergangenheit benutzt zu haben. API-Referenz - https://developer.wordpress.org/reference/hooks/transition_post_status/ –
Super cool. Vielen Dank. –