PHP nie jest procesem stale działającym: działa tylko na żądanie. O ile wiem, Wordpress może aktualizować się tylko wtedy, gdy ktoś ładuje stronę internetową. Ale proces aktualizacji nie przebiega natychmiastowo, więc z pewnością użytkownik odwiedzający witrynę miałby bardzo wolne ładowanie strony.
Czy istnieje inna sztuczka, której używają do automatycznych aktualizacji? Szukałem wszędzie, ale nie znalazłem żadnego wyjaśnienia.
System, którego tu szukasz, nazywa się „WP Cron”. Jest to system przetwarzania w tle w WordPressie, który pozwala na występowanie zdarzeń poza normalnym przetwarzaniem. Nadal potrzebują wyzwalacza, aby je uruchomić, ale nie przeszkadzają w ładowaniu stron z powodu procesu w tle.
Tak, ktoś musi załadować twoją stronę. Wyłączony w pliku default-filter.php, znajdziesz następujący wiersz kodu:
add_action( 'init', 'wp_cron' );
Tak więc przy każdym ładowaniu strony działa funkcja wp_cron. Ta funkcja została zakończona w wp-obejmuje / cron.php, a jej zadaniem jest sprawdzenie zaplanowanych zdarzeń w bazie danych. Jeśli są jakieś procesy, które trzeba uruchomić w tle, to wywołuje funkcję spawn_cron.
Spawn cron ma dwie możliwe metody działania, ale pierwszą i najczęstszą jest wywołanie funkcji wp_remote_post w celu nawiązania połączenia z samym sobą, pod adresem URL wp-cron.php. Wykonując to dodatkowe żądanie HTTP, uruchamia inny proces PHP, który wykonuje całą rzeczywistą pracę. Żądanie, które tutaj wysyła, nie jest blokowane, z limitem czasu wynoszącym 0,01 sekundy. Tak więc nie ma tutaj żadnych wyników. Celem tego żądania jest po prostu rozpoczęcie nowego procesu w tle. Po wykonaniu tej czynności po prostu wraca, więc użytkownik oglądający nigdy nie ma żadnych opóźnień.
Proces wp-cron.php jest tym, co faktycznie działa, aktualizację i wszystko inne. Wiele procesów w WordPress jest obsługiwanych przez system cron. Zaplanowane publikowanie po publikacji, przetwarzanie pingów, sprawdzanie aktualizacji, wszystko, co musi się wydarzyć poza normalnym przepływem, można zaplanować, a następnie uruchomić w razie potrzeby.
Ale tak, naprawdę musi się zdarzyć normalny hit na stronie, aby rozpocząć proces. I nie, WordPress.org nie kontaktuje się bezpośrednio z Twoją witryną, aby rozpocząć, Twoja strona musi otrzymać pewien ruch, aby ją uruchomić. Wykona się każda forma ruchu.