Dans la première partie de cette série, nous avons examiné les bases de l'API Heartbeat et son implémentation dans un plugin. Dans ce tutoriel, nous verrons comment vous pouvez changer le "pouls" du Heartbeat.
Par défaut, le cœur de WordPress bat toutes les 15 secondes. Vous pouvez réduire ce taux à un battement par minute. Sinon, vous pouvez augmenter temporairement le rythme à un temps toutes les 5 secondes, mais seulement temporairement pendant deux minutes et demie avant de revenir au temps normal: "4 BPM"..
Pour changer le pouls par défaut, vous pouvez utiliser le wp_heartbeat_filter
filtre qui filtre les paramètres initiaux de l'API Heartbeat. Ce filtre ne ne pas vous permet de régler initialement le pouls sur 'rapide': vous pouvez uniquement spécifier un nombre compris entre 15 et 60 (intervalle entre les battements en secondes).
fonction wptuts_heartbeat_settings ($ settings) $ settings ['interval'] = 60; // Quelque chose entre 15 et 60 ans retournent $ settings; add_filter ('heartbeat_settings', 'wptuts_heartbeat_settings');
Bien que les demandes ne soient envoyées au serveur que lorsqu'il y a des données à envoyer, Hearbeat s'exécute automatiquement au chargement de la page. Vous pouvez désactiver le démarrage automatique à partir des paramètres Heartbeat par défaut:
fonction wptuts_heartbeat_settings ($ settings) $ settings ['autostart'] = false; retourne $ settings; add_filter ('heartbeat_settings', 'wptuts_heartbeat_settings');
En passant du côté serveur au navigateur, Heartbeat ne démarrera alors que si:
wp.heartbeat.start ();
est appelé. Vous pouvez également désactiver la fonction Heartbeat côté client:
wp.heartbeat.stop ();
Outre l'activation et la désactivation de Heartbeat, vous pouvez également manipuler le rythme de votre pouls en réponse à certains événements déclenchés par l'utilisateur. Par exemple, vous pouvez écouter lorsque l'utilisateur commence une activité nécessitant une communication plus régulière avec le serveur - et ainsi augmenter temporairement le débit..
Depuis votre script JavaScript:
// 1 battement toutes les 5 secondes pendant un maximum de deux minutes et demie wp.heartbeat.interval ('fast'); // 1 battement toutes les 60 secondes wp.heartbeat.interval ('slow'); // 1 battement toutes les 15 secondes wp.heartbeat.interval ('standard');Attention: Bien que «rapide» ne dure que deux minutes et demie, si vous réglez continuellement le pouls sur «rapide», il fonctionne en permanence à cette vitesse. Vous devez faire attention à la façon dont vous modifiez le pouls et ne le faites que lorsque vous en avez besoin..
En plus de changer le navigateur impulsion, nous pouvons également le faire chaque fois que le navigateur communique avec le serveur. Ceci est fait en mettant 'heartbeat_interval
"dans la réponse - il peut être l'un des"vite
','lent
' ou 'la norme
'.
function wptuts_respond_to_browser ($ réponse, $ data, $ screen_id) if (isset ($ data ['wptuts-plugin']))) // Données de plug-in envoyées au navigateur $ response ['wptuts-plugin'] = array ('bonjour' => 'monde'); // Ralentit le rythme cardiaque $ response ['heartbeat_interval'] = 'slow'; return $ response; add_filter ('heartbeat_received', 'wptuts_respond_to_browser', 10, 3); // Utilisateurs connectés add_filter ('heartbeat_nopriv_received', 'wptuts_respond_to_browser', 10, 3); // Utilisateurs déconnectés
L'API Heartbeat ajuste également le temps en fonction de l'activité de l'utilisateur. WordPress vérifie l'activité de l'utilisateur toutes les 30 secondes, si après 5 minutes, il n'y a plus d'activité du clavier ou de la souris, le temps est réduit à un temps toutes les cent secondes. Ceci est fait indépendamment de ce qu’il a pu être défini par un plugin.
Dans la dernière partie de cette série, nous allons créer un exemple simple et pratique de plug-in utilisant la nouvelle API Heartbeat. Nous créerons un plugin qui fournira aux utilisateurs des mises à jour «en direct» sur le moment où les utilisateurs se connectent et se déconnectent de WordPress..