web-dev-qa-db-fra.com

L'API Heartbeat ne se désactive pas

J'espère que c'est quelque chose de facile à résoudre bien que d'après mes tests (très nouveau pour WordPress alors s'il vous plaît allez-y doucement avec moi si ces tests ne sont pas très bons) !) ne semble pas l'être.

J'ai un site hébergé sur SiteGround qui mangeait pendant les secondes du processeur comme les affaires de personne.

J'ai maintenant réussi à le mettre à la place de l'API Heartbeat qui appelle tellement le fichier admin-ajax.php.

Petite question sur admin-ajax.php si je peux? Ai-je raison de penser que ce fichier n'est déclenché que si quelqu'un est réellement connecté au panneau de contrôle et pas dans d'autres circonstances telles qu'une personne visitant simplement le site?

À cette fin, j'ai trouvé un code sur Internet qui est illustré ci-dessous:

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

J'ai lu que cela va dans le fichier functions.php de mon thème tout en haut après l'ouverture <? tag.

Je l'ai placé là, mais je suis à peu près certain que l'API Heartbeat est toujours en cours d'exécution malgré cela.

Ai-je raison de penser que l'API Heartbeat est responsable d'un utilisateur qui édite un message et qu'un autre utilisateur essaie de le modifier et qu'ils reçoivent un message les avertissant que quelqu'un d'autre est déjà en train de modifier ce message?

Si c'est le cas, je reçois toujours ces messages même avec ce code en place et avec deux utilisateurs complètement différents sur 2 navigateurs complètement différents.

Je teste cela sur une machine localhost car je ne veux pas jouer avec le site en direct actuellement, mais il s'agit d'une installation complètement Vanilla de WordPress 4.8. 1 sans aucun plugin ou thème personnalisé utilisé. Juste le thème standard de 2017.

Mes questions seraient donc:

1 - Est-il même possible de désactiver l'API Heartbeat ou est-ce un problème connu qu'il ne peut pas être désactivé?

et

2 - S'il peut définitivement être désactivé, que fais-je de mal?

Merci pour toute aide concernant ceci.

Meilleurs vœux,

Marque

1
Mark Bowen

Ai-je raison de penser que ce fichier n'est déclenché que si quelqu'un est réellement connecté au panneau de contrôle et pas dans d'autres circonstances telles qu'une personne visitant simplement le site?

Non, l'API Ajax est utilisée pour les demandes arbitraires, y compris celles pour les utilisateurs frontaux et non authentifiés.

Ai-je raison de penser que l'API Heartbeat est responsable d'un utilisateur qui édite un message et qu'un autre utilisateur essaie de le modifier et qu'ils reçoivent un message les avertissant que quelqu'un d'autre est déjà en train de modifier ce message?

Alors que l'API Heartbeat a été implémentée pour de telles fonctions, il s'agit plutôt d'un canal générique sur lequel des choses arbitraires peuvent s'exécuter.

Est-il même possible de désactiver l'API Heartbeat ou est-ce un problème connu qu'il ne peut en fait pas être désactivé?

Pour autant que je me souvienne, il est exceptionnellement difficile à désactiver, plus encore de manière propre et compatible. Il a également suivi plusieurs approches, de sorte que de nombreux extraits en ligne sont obsolètes et non pertinents. S'il existe un moyen sensé de l'éteindre dès maintenant - je n'en suis pas conscient.

S'il peut définitivement être désactivé, que fais-je de mal?

Je ne sais pas si vous faites quelque chose de mal. Cela pourrait être mieux discuté avec le support d'hébergement. Peut-être que quelque chose est en train de gâcher, vos besoins (tels que de nombreux utilisateurs connectés dans admin) peuvent être plus importants que votre plan. Pour l'anecdote, je suis moi-même un utilisateur de longue date de SiteGround et je n'ai jamais eu de problème avec l'API Heartbeat.

2
Rarst