これは、バグよりもコードレビューの要求です。問題は、これが以下の関数を書く「正しい方法」なのかどうかです。WordPressの投稿数の変更を検出するにはどうすればよいですか?
ブログの投稿数が変更されているかどうかを確認するPHP cronタスクを実行し、そうであれば - キャッシュされたホームページを消去します。
WP Crontrol
プラグインを使用してphp cronタスクを設定できます。私が必要とするのは、(wp_optionsテーブルを使用して)ポストの数のどこかに格納されるグローバル変数を作成する関数であり、毎回、現在のポスト数をサーバに問い合わせる関数です。そして、それは違いがある場合は、キャッシュをクリアする。以下は、私が書いた関数です。あなたの質問に答えることの意味を作るか、私は違っやるべきものがある(/より良いが?)
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();
ありがとう@シヴァム、非常に面白いです。もし私が尋ねることができるなら、あなたはどのように "transition_post_status"について知りましたか? –
私は過去にこれを使って覚えていました。 APIリファレンス - https://developer.wordpress.org/reference/hooks/transition_post_status/ –
超クールです。ありがとう。 –