Nella prima parte di questa serie abbiamo esaminato le basi dell'API Heartbeat e come può essere implementato in un plug-in. In questo tutorial vedremo come è possibile modificare il "polso" dell'Heartbeat.
Di default il cuore di WordPress batte una volta ogni 15 secondi. È possibile ridurre tale velocità a qualsiasi valore inferiore a un battito ogni minuto. In alternativa, puoi aumentare temporaneamente la frequenza a un battito ogni 5 secondi, ma solo temporaneamente per due minuti e mezzo prima che venga ripristinato il battito "standard": "4 BPM".
Per cambiare l'impulso predefinito puoi usare il wp_heartbeat_filter
filtro che filtra le impostazioni iniziali dell'API Heartbeat. Questo filtro fa non consente inizialmente di impostare l'impulso su 'veloce': invece è possibile specificare solo un numero compreso tra 15 e 60 (intervallo tra battiti in secondi).
function wptuts_heartbeat_settings ($ settings) $ settings ['interval'] = 60; // Qualcosa tra 15-60 return $ settings; add_filter ('heartbeat_settings', 'wptuts_heartbeat_settings');
Sebbene le richieste vengano inviate al server solo quando ci sono dati da inviare, Hearbeat si avvia automaticamente quando viene caricata la pagina. Puoi disattivare l'avvio automatico dalle impostazioni di Heartbeat predefinite:
function wptuts_heartbeat_settings ($ settings) $ settings ['autostart'] = false; restituire $ impostazioni; add_filter ('heartbeat_settings', 'wptuts_heartbeat_settings');
Passando dal lato server al browser, Heartbeat inizierà a funzionare solo se:
wp.heartbeat.start ();
è chiamato. Puoi anche disattivare Heartbeat sul lato client:
wp.heartbeat.stop ();
Oltre a attivare e disattivare Heartbeat, è possibile manipolare il battito dell'impulso (ad esempio) in risposta a determinati eventi attivati dall'utente. Ad esempio, è possibile ascoltare quando l'utente inizia un'attività che richiede una comunicazione più regolare con il server e aumentare così temporaneamente la velocità.
Dall'interno del tuo script JavaScript:
// 1 battere ogni 5 secondi per un massimo di due minuti e mezzo wp.heartbeat.interval ('veloce'); // 1 battito ogni 60 secondi wp.heartbeat.interval ('slow'); // 1 battito ogni 15 secondi wp.heartbeat.interval ('standard');Avvertimento: Anche se "veloce" dura solo due minuti e mezzo, se si imposta continuamente l'impulso su "veloce", in effetti, viene eseguito permanentemente a quella velocità. Dovresti fare attenzione a come cambi il polso e farlo solo quando hai bisogno di farlo.
Oltre a cambiare il lato del browser degli impulsi, possiamo farlo anche ogni volta che il browser comunica con il server. Questo viene fatto impostando 'HEARTBEAT_INTERVAL
'nella risposta - può essere uno dei'veloce
','lento
' o 'standard
'.
function wptuts_respond_to_browser ($ response, $ data, $ screen_id) if (isset ($ data ['wptuts-plugin'])) // Dati plug-in inviati al browser $ response ['wptuts-plugin'] = array ('ciao' => 'mondo'); // Slow the hearbeat $ response ['heartbeat_interval'] = 'slow'; return $ response; add_filter ('heartbeat_received', 'wptuts_respond_to_browser', 10, 3); // Utenti registrati add_filter ('heartbeat_nopriv_received', 'wptuts_respond_to_browser', 10, 3); // Utenti disconnessi
L'API Heartbeat regola anche il ritmo in base all'attività dell'utente. WordPress controlla l'attività dell'utente ogni 30 secondi, se dopo 5 minuti non viene eseguita alcuna attività della tastiera o del mouse, il beat viene ridotto a un battito ogni cento secondi. Questo viene fatto indipendentemente da ciò che potrebbe essere stato impostato da un plugin.
Nella parte finale di questa serie creeremo un semplice esempio funzionante di un plug-in usando la nuova API Heartbeat. Creeremo un plug-in che fornisce aggiornamenti "live" degli utenti quando gli utenti accedono e escono da WordPress.