Jak zarządzać interfejsem API WordPress Heartbeat

Opublikowany: 2023-01-31

Interfejs API WordPress Heartbeat istnieje od prawie dekady. Zapewnia bezproblemową komunikację w czasie rzeczywistym między pulpitem nawigacyjnym WordPress a serwerem hosta. Wbudowany w rdzeń WordPress interfejs Heartbeat API oferuje potężną funkcjonalność, która może znacznie poprawić administrację witryną.

Ta moc ma jednak swoją cenę. Jest to liczba zasobów serwera wymaganych do bezproblemowego działania komunikacji. Prowadzenie stron internetowych intensywnie korzystających z zasobów lub narzucanie przez dostawcę usług hostingowych ścisłych limitów pamięci i czasu procesora może prowadzić do zauważalnego spadku wydajności, w którym pewną rolę może odgrywać interfejs Heartbeat API.

W tym przewodniku odkryjemy potencjał API WordPress Heartbeat i jego rolę w ekosystemie WordPress. Dowiesz się, jak działa Heartbeat API. Dowiesz się również, dlaczego może być konieczne rozważenie ograniczenia jego aktywności na swojej stronie WordPress. Pomoże Ci to osiągnąć lepszą wydajność bez konieczności aktualizacji planu hostingowego.

Co to jest interfejs API WordPress Heartbeat?

WordPress Heartbeat API to interfejs wbudowany w rdzeń WordPress, który umożliwia komunikację w czasie rzeczywistym między serwerem a pulpitem nawigacyjnym WordPress. Interfejs API Heartbeat został po raz pierwszy wprowadzony w 2013 roku wraz z wydaniem WordPress 3.6. Zapewnił znaczne ulepszenia zarządzania treścią i innych kluczowych obszarów administrowania witryną.

Interfejs API bicia serca WordPress

Dlaczego interfejs Heartbeat API jest tak ważny?

Pulpit nawigacyjny WordPress to w dużej mierze aplikacja po stronie klienta. Oznacza to, że większość akcji odbywa się w przeglądarce użytkownika. Jako aplikacja front-end, obszar administracyjny WordPress nie ma bezpośredniego dostępu do bazy danych WordPress, w której przechowywana jest zawartość strony internetowej i inne kluczowe informacje.

Aby działać poprawnie, pulpit nawigacyjny WordPress musi być w stanie komunikować się z serwerem w celu wysyłania i odbierania danych. Interfejsy programowania aplikacji (API), takie jak WordPress Heartbeat API, umożliwiają otrzymywanie aktualizacji w czasie rzeczywistym bez konieczności ponownego ładowania całej strony w celu wyświetlenia nowych informacji.

Aby zapewnić bezproblemową obsługę, pulpit nawigacyjny WordPress wysyła żądania do serwera za kulisami wystarczająco często, aby wyeliminować wszelkie opóźnienia aktualizacji dla użytkowników WordPress, którzy są zalogowani i pracują na stronie internetowej. Interfejs Heartbeat API będzie wysyłał żądania do serwera i wywołania API co 15 do 120 sekund.

Trzy kluczowe funkcje WordPress Heartbeat API Uprawnienia

Interfejs API WordPress Heartbeat obsługuje trzy kluczowe funkcje, które sprawiają, że administrowanie witryną jest łatwiejsze i wygodniejsze. Te funkcje to automatyczne zapisywanie, blokowanie zawartości i powiadomienia na pulpicie nawigacyjnym w czasie rzeczywistym. Są one szczególnie ważne w przypadku witryn internetowych edytowanych przez społeczność lub wspólnie z wieloma użytkownikami zalogowanymi i aktywnymi w tym samym czasie.

1. Automatyczne zapisywanie i poprawki

Automatyczne zapisywanie i wersje to jedne z kluczowych funkcji zapewnianych przez WordPress Heartbeat API. Za każdym razem, gdy użytkownik pracuje w edytorze bloków, WordPress automatycznie zapisuje zawartość co 60 sekund. Dzięki temu żadne zmiany nie pozostaną niezapisane. Wysyłając żądania do serwera co minutę, WordPress Heartbeat API zapisuje kopię roboczą posta lub strony w swojej bazie danych, która będzie tam przechowywana do momentu uruchomienia nowego automatycznego zapisywania.

Automatyczne zapisywanie WordPress obsługiwane przez Heartbeat API jest niezwykle przydatne. Mogą zapobiec utracie danych w przypadku awarii przeglądarki lub problemów z połączeniem. Automatyczne zapisy nie zastępują żadnych wersji utworzonych przez użytkownika i nie gromadzą się w bazie danych.

2. Blokowanie treści

Blokowanie treści to kolejna funkcja WordPress Heartbeat API, która umożliwia lepszą edycję dla właścicieli witryn WordPress. Jeśli post lub strona jest aktualnie edytowana, WordPress zablokuje ją, aby uniemożliwić innym użytkownikom wprowadzanie w niej zmian. WordPress Heartbeat API będzie wysyłać żądania do serwera co 15 sekund. Wyświetli powiadomienie, jeśli inny użytkownik otworzy zablokowaną zawartość do edycji.

3. Powiadomienia na pulpicie nawigacyjnym w czasie rzeczywistym

Interfejs API WordPress Heartbeat obsługuje powiadomienia na pulpicie nawigacyjnym w czasie rzeczywistym, w tym te wysyłane przez wtyczki. Niezawodność komunikacji klient-serwer zapewnianej przez Heartbeat API skłoniła tysiące twórców wtyczek WordPress do zintegrowania ich ze swoimi aplikacjami.

Domyślny interwał wywołań API WordPress Heartbeat w obszarze administracyjnym witryny to 15 sekund. Twórcy wtyczek, którzy chcą korzystać z funkcjonalności API, mogą skonfigurować niestandardowe interwały wymiany danych między aplikacją kliencką a serwerem.

Jak działa interfejs API WordPress Heartbeat?

WordPress Heartbeat API wykorzystuje AJAX — asynchroniczny JavaScript i XML — do komunikacji z serwerem z pulpitu administratora. Interfejs programowania aplikacji zbiera dane i wysyła je za pośrednictwem tak zwanego zdarzenia jQuery. Program obsługi admin-ajax odbiera dane i przetwarza je po stronie serwera, a następnie przygotowuje i zwraca odpowiedź w formacie JSON.

Gdy ładuje się pulpit nawigacyjny WordPress, kod po stronie klienta ustawia interwał, znany również jako tik, który ma być uruchamiany co 15 do 120 sekund, w zależności od zadania. Kod API Heartbeat ma za zadanie zbieranie danych po stronie klienta i przekazywanie ich do serwera w celu otrzymywania aktualizacji.

Całkowita liczba wywołań Heartbeat API zależy od liczby aktywnych użytkowników pracujących jednocześnie na stronie. To tyle samo, co liczba załadowanych instancji pulpitu nawigacyjnego WordPress. Otwarcie obszaru administracyjnego WordPress w wielu oknach przeglądarki tworzy taką samą liczbę wywołań interfejsu Heartbeat API, jak gdyby wielu użytkowników było zalogowanych do zaplecza witryny i wykonywało zadania w tym samym czasie.

Po co ograniczać wywołania interfejsu API WordPress Heartbeat?

Ograniczenie wywołań WordPress Heartbeat API może pomóc przyspieszyć witryny WordPress, które mają bardzo ograniczoną pulę przydzielonych zasobów serwera, zwłaszcza jeśli chodzi o czas procesora. Chociaż interfejs API Heartbeat prawdopodobnie nie będzie kluczowym problemem powodującym słabą wydajność witryny, zdecydowanie należy go wziąć pod uwagę.

Za każdym razem, gdy interfejs Heartbeat API komunikuje się z serwerem, wysyłane jest żądanie POST HTTP do pliku admin-ajax.php w pliku wp-admin. Ponieważ wywołania interfejsu Heartbeat API są wysyłane do serwera co 15–120 sekund, a liczba ta wzrasta, jeśli jest więcej niż jeden aktywny administrator, interfejs API może przeciążać serwer, co skutkuje dużym obciążeniem procesora i pamięci systemowej.

Niektórzy właściciele witryn WordPress mogą nawet pomylić działanie interfejsu Heartbeat API z trwającym atakiem DDoS. Żądania API WordPress Heartbeat nie mogą być buforowane, więc każde wywołanie zużywa określoną ilość zasobów serwera. Jeśli serwer aktywnie wykorzystuje swoje zasoby do obsługi wywołań API, Twoi klienci mogą doświadczyć opóźnień w renderowaniu treści podczas przeglądania Twojej witryny.

Trzy rzeczy do rozważenia przed wyłączeniem interfejsu Heartbeat API

Całkowite wyłączenie interfejsu Heartbeat API rzadko jest dobrym pomysłem. Pulpit nawigacyjny WordPress w większości utraci możliwość komunikacji z serwerem w czasie rzeczywistym. Po wyłączeniu interfejsu Heartbeat API nie będziesz już mógł otrzymywać powiadomień. Ponadto nie będziesz mógł korzystać z blokowania zawartości, automatycznego zapisywania i poprawek.

Przed wyłączeniem interfejsu Heartbeat API lub ograniczeniem jego działania należy wziąć pod uwagę trzy kluczowe kwestie:

  • Hosting. Sprawdź, ile czasu procesora i pamięci systemowej jest przydzielonych Twojej witrynie. Czy istnieje ograniczenie liczby procesów, które może utworzyć Twoja witryna?
  • Czas poświęcony na administrację strony. Ile czasu poświęcasz na administrację i publikowanie treści? Ilu aktywnych użytkowników często pracuje jednocześnie na pulpicie nawigacyjnym WordPress i interfejsach zaplecza?
  • Otrzymany dzienny ruch. Ilu odwiedzających dziennie odwiedza Twoja witryna WordPress? Czy masz jakieś rozwiązania do buforowania, które zmniejszają obciążenie serwera?

W zależności od typu witryny i aktualnej konfiguracji hostingu ograniczenie liczby wywołań interfejsu API WordPress Heartbeat będzie miało różny wpływ na ogólną wydajność. Jeśli prowadzisz intensywnie korzystającą z zasobów witrynę WordPress, w której wielu użytkowników przeprowadza regularną konserwację i publikuje treści, zmniejszenie liczby wywołań interfejsu Heartbeat API może być bardzo korzystne. Może również pomóc uniknąć zwiększania kosztów hostingu w celu dostosowania się do rosnącego natężenia ruchu.

Jak zarządzać interfejsem API WordPress Heartbeat za pomocą wtyczki

Najłatwiejszym sposobem zarządzania żądaniami WordPress Heartbeat API jest użycie przeznaczonej do tego wtyczki WordPress. Istnieje kilka różnych rozwiązań, z których możesz skorzystać. Heartbeat Control, opracowany przez WP Rocket, jest jednym z najlepszych i najpopularniejszych.

Kontrola bicia serca

Zainstaluj i aktywuj wtyczkę Heartbeat Control z pulpitu nawigacyjnego WordPress. Przejdź do Ustawienia > Kontrola pulsu , aby otworzyć konfigurację wtyczki. Heartbeat Control pozwala zarządzać aktywnością Heartbeat API na interfejsie strony, desce rozdzielczej WordPress oraz w edytorze bloków za pomocą następujących opcji:

  • Zezwól na bicie serca. Jeśli ta opcja jest włączona, wtyczka nie będzie w żaden sposób ograniczać wywołań interfejsu API Heartbeat.
  • Wyłącz tętno. Wyłączenie Heartbeat zablokuje wszystkie wywołania API w wybranych obszarach Twojej witryny WordPress.
  • Zmodyfikuj bicie serca. Możesz ustawić niestandardowy interwał dla wywołań API WordPress Heartbeat, w zakresie od 15 do 300 sekund.
Kontrola bicia serca

W większości przypadków najlepszym rozwiązaniem jest skonfigurowanie większego interwału wywołań interfejsu API WordPress Heartbeat. Na przykład ograniczenie liczby wywołań interfejsu API do jednego na pięć minut we wszystkich trzech obszarach witryny będzie miało taki sam wpływ na ogólną wydajność, jak całkowite wyłączenie interfejsu Heartbeat API.

Pamiętaj, że ograniczenie aktywności interfejsu Heartbeat API w edytorze bloków może wymagać częstszego zapisywania wersji, aby uniknąć utraty jakichkolwiek zmian w edytowanej treści. Jeśli nie polegasz na automatycznych zapisach i nie potrzebujesz blokowania treści, możesz całkowicie wyłączyć WordPress Heartbeat API w Gutenbergu.

Jak ograniczyć wywołania API Heartbeat WordPress bez wtyczki

Możesz ograniczyć wywołania API WordPress Heartbeat bez wtyczki, używając haków WordPress. Dodanie kilku wierszy kodu do pliku functions.php aktywnego motywu witryny może pomóc w wyłączeniu interfejsu API Heartbeat lub określeniu niestandardowego interwału wywołań interfejsu API.

WordPress jest wyposażony we wbudowany edytor motywów, który umożliwia modyfikowanie pliku functions.php z pulpitu administratora. Jednak większość wtyczek zabezpieczających WordPress, takich jak iThemes Security Pro, wyłącza tę funkcję, aby chronić Twoją witrynę na wypadek naruszenia bezpieczeństwa.

Możesz edytować plik za pomocą interfejsu menedżera plików udostępnianego przez panel kontrolny Twojego hostingu lub łącząc się z plikami swojej witryny przez FTP lub SSH. Jeśli Twoim ulubionym motywem blokowym WordPress jest Kadence WP, możesz znaleźć plik functions.php w folderze Kadence w katalogu treści WordPress.

Pamiętaj, że każdy kod dodany do pliku functions.php najprawdopodobniej zostanie nadpisany przez następną aktualizację motywu. Dlatego może lepiej zarządzać interfejsem API WordPress Heartbeat za pomocą wtyczki. Jeśli używasz motywu potomnego, możesz zmienić jego plik functions.php bez ryzyka nadpisania go podczas aktualizacji motywu nadrzędnego.

Nie zapomnij najpierw zapisać kopii zapasowej swojej witryny WordPress

Zapisywanie kopii zapasowych jest ważną częścią administrowania serwisem. Umożliwi to odzyskanie sprawności po wszelkich błędach i szybkie przywrócenie witryny w sytuacji awaryjnej. Upewnij się, że wykonałeś kopię zapasową swojej witryny przed edycją jakichkolwiek plików rdzenia lub motywu WordPress.

Korzystanie z wtyczki do tworzenia kopii zapasowych WordPress pomaga stworzyć silną strategię tworzenia kopii zapasowych. Będziesz mieć kopię roboczą swojej witryny zawsze, gdy jej potrzebujesz. Przechowuj kopie zapasowe swojej witryny w zdalnej lokalizacji i korzystaj z niestandardowych harmonogramów tworzenia kopii zapasowych oraz przywracania jednym kliknięciem dzięki BackupBuddy.

Wyłącz interfejs API pulsu

Dodanie poniższej czynności umożliwia zatrzymanie interfejsu Heartbeat API, skutecznie wyłączając wszystkie wywołania interfejsu API. Aby to osiągnąć, dodaj poniższy fragment kodu na dole pliku functions.php.

function wb_stop_heartbeat() {
 wp_deregister_script('heartbeat');
}
add_action('init', 'wb_stop_heartbeat', 1);

W ten sam sposób możesz wyłączyć określoną funkcję w interfejsie API WordPress Heartbeat.

function disable_autosave() {
 wp_deregister_script('autosave');
}
add_action('admin_init', 'disable_autosave');

Skonfiguruj niestandardowy interwał dla wywołań interfejsu API Heartbeat

Aby ograniczyć wywołania API WordPress Heartbeat, możesz określić filtr, który skonfiguruje niestandardowy interwał dla żądań API. Poniższy fragment kodu ogranicza wywołania interfejsu API Heartbeat do jednego żądania na minutę.

function wb_set_heartbeat_time_interval($settings) {
 $settings['interval']=60;
 return $settings;
}
add_filter('heartbeat_settings', 'wb_set_heartbeat_time_interval');

Skonfiguruj niestandardowy interwał dla automatycznych zapisów WordPress

WordPress umożliwia skonfigurowanie niestandardowego interwału automatycznego zapisywania poprzez ponowne zdefiniowanie stałej AUTOSAVE_INTERVAL. Podobnie jak w przypadku innych stałych, możesz przypisać jej nową wartość, dodając następujący wiersz do głównego pliku konfiguracyjnego WordPress:

define('AUTOSAVE_INTERVAL', 300);

Możesz przypisać interwałowi większą wartość, na przykład 3600, czyli godzinę, aby całkowicie wyłączyć automatyczne zapisywanie WordPress. Stałe WordPress skonfigurowane w wp-config.php nie są modyfikowane podczas żadnych aktualizacji WordPress. Nie będziesz musiał ich później ponownie definiować.

Podsumowanie

Interfejs API Heartbeat WordPress jest jedną z kluczowych funkcji wbudowanych w rdzeń WordPress, która umożliwia komunikację klient-serwer w czasie rzeczywistym za pomocą wywołań AJAX. Interfejs programowania aplikacji umożliwia WordPress wymianę danych między serwerem a pulpitem nawigacyjnym WordPress, aby zapewnić lepszą administrację.

Interfejs Heartbeat API wysyła żądania do serwera kilka razy na minutę. Może to spowodować zwiększone obciążenie serwera i pogorszenie wydajności. Możesz ograniczyć wywołania interfejsu API Heartbeat, używając wtyczki, dodając haki WordPress lub definiując stałe WordPress.

Niezawodna wydajność witryny jest niezbędna, ale równie ważne jest bezpieczeństwo. iThemes pomoże chronić wszystkie obszary Twojej witryny WordPress, dzięki czemu Twoja firma pozostanie online bez względu na wszystko. Dowiedz się, jak możesz zabezpieczyć swoją obecność w Internecie, w tym uwierzytelnianie wieloskładnikowe, monitorowanie zmian plików i skanowanie pod kątem luk w zabezpieczeniach dzięki iThemes Security Pro.