Die Heartbeat-API Den Puls ändern

Im ersten Teil dieser Serie haben wir uns mit den Grundlagen der Heartbeat-API beschäftigt und wie sie in ein Plugin implementiert werden kann. In diesem Tutorial werden wir untersuchen, wie Sie den "Puls" des Heartbeats ändern können.

Standardmäßig schlägt das WordPress-Herz alle 15 Sekunden einmal. Sie können diese Rate pro Minute auf einen Takt senken. Alternativ können Sie die Rate vorübergehend alle 5 Sekunden auf einen Takt erhöhen - jedoch nur zweieinhalb Minuten, bevor sie auf den Standardschlag zurückgesetzt wird: "4 BPM"..


Ändern Sie den Standardimpuls

Um den Standardimpuls zu ändern, können Sie die verwenden wp_heartbeat_filter filter, der die Anfangseinstellungen der Heartbeat-API filtert. Dieser Filter funktioniert nicht Erlaube dir, den Impuls zunächst auf 'schnell' zu setzen: Stattdessen kannst du nur eine Zahl zwischen 15 und 60 angeben (Intervall zwischen den Schlägen in Sekunden)..

 Funktion wptuts_heartbeat_settings ($ settings) $ settings ['Intervall'] = 60; // Alles zwischen 15-60 return $ settings;  add_filter ('heartbeat_settings', 'wptuts_heartbeat_settings');

Auto-Start ausschalten

Obwohl Anforderungen nur dann an den Server gesendet werden, wenn Daten gesendet werden sollen, wird Hearbeat automatisch ausgeführt, wenn die Seite geladen wird. Sie können den automatischen Start mit den Standard-Heartbeat-Einstellungen deaktivieren:

 Funktion wptuts_heartbeat_settings ($ settings) $ settings ['autostart'] = false; $ Einstellungen zurückgeben;  add_filter ('heartbeat_settings', 'wptuts_heartbeat_settings');

Heartbeat wechselt vom Server zum Browser und läuft nur dann, wenn:

 wp.heartbeat.start ();

wird genannt. Sie können Heartbeat auch clientseitig deaktivieren:

 wp.heartbeat.stop ();

Ändern Sie die Pulse-Client-Seite

Sie können Heartbeat nicht nur ein- und ausschalten, sondern auch den Pulsschlag (z. B.) als Reaktion auf bestimmte vom Benutzer ausgelöste Ereignisse beeinflussen. Sie können beispielsweise darauf achten, wenn der Benutzer eine Aktivität startet, die eine regelmäßigere Kommunikation mit dem Server erfordert - und somit die Geschwindigkeit vorübergehend erhöhen.

In Ihrem JavaScript-Skript:

 // 1 Beat alle 5 Sekunden für maximal zweieinhalb Minuten wp.heartbeat.interval ('fast'); // 1 Beat alle 60 Sekunden wp.heartbeat.interval ('slow'); // 1 Beat alle 15 Sekunden wp.heartbeat.interval ('standard');
Warnung: Obwohl "schnell" nur zweieinhalb Minuten dauert, läuft der Puls ständig auf "schnell", läuft er jedoch permanent mit dieser Geschwindigkeit. Sie sollten darauf achten, wie Sie den Puls ändern, und dies nur dann, wenn Sie dies tun müssen.

Ändern Sie die Pulse-Server-Seite

Wir können dies nicht nur auf der Browserseite ändern, sondern auch jedes Mal, wenn der Browser mit dem Server kommuniziert. Dies geschieht durch Setzen von 'heartbeat_interval"in der Antwort - es kann einer von" seinschnell','schleppend' oder 'Standard'.

 Funktion wptuts_respond_to_browser ($ response, $ data, $ screen_id) if (isset ($ data ['wptuts-plugin'])) // Plug-in-Daten, die an den Browser gesendet werden $ response ['wptuts-plugin'] = Array ('Hallo' => 'Welt'); // Langsam den Herzschlag beschleunigen $ response ['heartbeat_interval'] = 'slow';  $ Antwort zurückgeben;  add_filter ('heartbeat_received', 'wptuts_respond_to_browser', 10, 3); // Angemeldete Benutzer add_filter ('heartbeat_nopriv_received', 'wptuts_respond_to_browser', 10, 3); // Abgemeldete Benutzer

Benutzerinaktivität

Die Heartbeat-API passt den Takt auch an die Aktivität eines Benutzers an. WordPress prüft alle 30 Sekunden die Benutzeraktivität. Wenn nach 5 Minuten keine Tastatur- oder Mausaktivität erfolgt, wird der Taktschlag alle hundert Sekunden auf einen Schlag reduziert. Dies geschieht unabhängig davon, was möglicherweise von einem Plugin eingestellt wurde.

Im letzten Teil dieser Serie erstellen wir ein einfaches Arbeitsbeispiel für ein Plugin mit der neuen Heartbeat-API. Wir erstellen ein Plugin, mit dem Benutzer Live-Updates erhalten, wenn sich Benutzer bei WordPress an- und abmelden.