Désactiver Heartbeat dans le backend uniquement : pas d'impact sur le frontend, pas d'impact sur l'expérience d'édition

existent WordPress de l'optimisation des performances dans la pratique.API Heartbeat Il s'agit d'un module incontournable mais souvent "mal compris".
De nombreux sites, lorsqu'ils optimisent les performances du backend, désactivent simplement Heartbeat sur l'ensemble du site, et les résultats s'enchaînent :

  • Sauvegarde automatique de l'éditeur désactivée
  • Collaboration multijoueurs sur les anomalies verrouillées
  • Statut de la commande WooCommerce non synchronisé
  • L'expérience du backend est moins bonne

La bonne chose à faire n'est pas de "désactiver Heartbeat", mais de le désactiver uniquement dans les scénarios de non-édition en arrière-plan.

Cet article l'explicitera dans son intégralité :

  • Que fait Heartbeat ?
  • Pourquoi la meilleure solution consiste à n'utiliser que l'arrière-plan ?
  • Des réalisations multiples, sûres et contrôlées
  • Stratégie de différenciation pour les différentes pages du backend
  • Pièges courants et méthodes de validation
Image [1] - Désactiver Heartbeat uniquement dans le backend : pas d'impact sur le frontend et l'expérience d'édition

I. Qu'est-ce que le Heartbeat ? Pourquoi ralentit-il l'arrière-plan ?

1. la nature du rythme cardiaque

L'API Heartbeat est une suite de Mécanisme d'interrogation AJAX temporisé, par défaut :

  • chacun 15-60 secondes déclenché une fois
  • faire passer (un projet de loi, une inspection, etc.) admin-ajax.php ou API REST
  • Échange continu de données d'état avec le serveur

Les principales utilisations sont les suivantes :

  • Sauvegarde automatique de l'article
  • Verrouillage de l'édition (empêche les écrasements multiples)
  • Notifications en arrière-plan, rafraîchissement de l'état
  • Mise à jour en temps réel des commandes et de l'inventaire de WooCommerce
Image [2] - Désactiver Heartbeat uniquement dans le backend : pas d'impact sur le frontend et l'expérience d'édition

2. où se situe le problème

Dans un environnement de production réel, le problème avec Heartbeat n'est pas tant la "fonctionnalité" que le fait queFréquence + gamme: :

  • Chaque page ouverte dans le backend fait l'objet d'un sondage
  • Demande de superposition lorsque plusieurs administrateurs sont en ligne en même temps
  • Serveurs à profil bas / Serveurs d'outre-mer RTT élevé
  • admin-ajax.php Performances intrinsèquement faibles

Elle finit par se manifester :

  • Utilisation élevée de l'unité centrale en arrière-plan
  • Exception de comptage de requêtes MySQL
  • Empilement de processus PHP-FPM
  • Lenteur et rotation occasionnelles en arrière-plan

Pourquoi ne peut-on pas "désactiver globalement Heartbeat" ?

De nombreux tutoriels le suggèrent :

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

Ce n'est pas la bonne démonstration.

La raison est très simple :

FonctionnalitéS'appuyer ou non sur Heartbeat
Sauvegarde automatique Gutenberg
Verrouillage de l'édition
WooCommerce Backend Order Refresh
Protection contre les courants d'air de l'éditeur classique

La conséquence en est généralement une taille unique :

  • Perte de contenu éditorial
  • Conflits d'édition multiples
  • Les fonctions en coulisses "semblent normales, mais sont en fait des mines cachées".

L'objectif doit donc être :

Désactiver Heartbeat uniquement sur [backend non-edit page].
Un battement de cœur est nécessaire pour conserver l'éditeur et les fonctions clés

III. aperçu des meilleures stratégies (les conclusions d'abord)

Une stratégie éprouvée et contrôlée devrait être satisfaisante :

  1. N'affecte pas le front-end (Front-end)
  2. N'affecte pas l'édition d'articles/de pages
  3. Ne fonctionne qu'avec wp-admin
  4. Évolutif et facile à maintenir

Priorité recommandée :

  1. sur la base de admin_enqueue_scripts Désactivation de la précision (de préférence)
  2. Traitement différencié en fonction des conditions d'appréciation de la page
  3. Contrôle Fréquence des battements de cœur (pas complètement désactivée)
  4. Programme Plug-in (uniquement complémentaire)
Image [3] - Désactiver Heartbeat uniquement dans le backend : pas d'impact sur le frontend et l'expérience d'édition

Option 1 (recommandée) : Désactiver Heartbeat uniquement sur les pages non modifiées en arrière-plan

Idées maîtresses

  • Heartbeat est un script :rythme cardiaque
  • Chargement en arrière-plan par crochetSuppression conditionnelle
  • La page d'édition (post.php / post-new.php) ne bouge pas
  • Les autres pages du backend sont directement désactivées

Code complet utilisable

/**
 * Disable Heartbeat only on admin non-editor pages
 */
add_action( 'admin_enqueue_scripts', function() {

    // 当前后台页面
    $screen = get_current_screen();

    if ( ! $screen ) {
        return;
    }

    // 编辑文章 / 页面时,保留 Heartbeat
    if ( $screen->base === 'post' ) {
        return;
    }

    // 其余后台页面禁用 Heartbeat
    wp_deregister_script( 'heartbeat' );
});

Pourquoi ce programme est-il sûr ?

  • admin_enqueue_scripts Efficace uniquement en arrière-plan
  • poste Les pages sont explicitement exclues (l'expérience éditoriale n'est pas affectée).
  • Ne pas toucher au script du frontend
  • N'affecte pas l'API REST

V. Programme II : Contrôle plus fin des pages de back-office (avancé)

Si vous êtesGrand site / Back Office E-commerce / Système multi-rôlesIl pourrait être plus fin.

Exemple : maintenir le rythme cardiaque sur ces pages uniquement

  • Articles / Rédacteurs de pages
  • Page de commande WooCommerce
  • Tableaux de bord personnalisés
add_action( 'admin_enqueue_scripts', function() {

    $screen = get_current_screen() ; if ( !
    si ( ! $screen ) return ;

    $allowed = [
        'post',
        'woocommerce_page_wc-orders'.
    ] ;

    if ( in_array( $screen->base, $allowed, true ) ) {
        retour ;
    }

    wp_deregister_script( 'heartbeat' ) ; }
}).

En forme :

  • WooCommerce Standalone
  • Multiples opérations d'arrière-guichet
  • Système de commande et de mise à jour du contenu à haute fréquence

VI. option 3 : pas d'interdiction, seulement une "réduction d'échelle" (plus conservatrice)

Si vous craignez les effets inconnus d'une désactivation complète, vous pouvezRéduire la fréquence des battements de cœur.

Exemple : page non modifiable du backend → 120 secondes à la fois

add_filter( 'heartbeat_settings', function( $settings ) {

    if ( is_admin() ) {
        $settings['interval'] = 120 ;
    }

    return $settings.
}) ;

Notes comparatives

faire preuve de tactCharge du serveurl'intégrité fonctionnelle
Désactiver complètement⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Désactivé uniquement en arrière-plan⭐⭐⭐⭐⭐⭐⭐⭐
réduction de la fréquence⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

VII. le programme Plug-in (non recommandé comme programme à long terme)

Plugins communs :

  • Contrôle du rythme cardiaque
  • WP Rocket(accessoire)

Le problème est le suivant :

  • Taille des particules insuffisante
  • Comportement incontrôlable après escalade
  • Difficile de faire la distinction entre des pages spécifiques du backend

En forme :

  • Il n'est pas pratique d'écrire du code
  • test ad hoc
  • petit site

Il ne convient pas :

  • hautement concomitante
  • Commerce électronique
  • système multi-éditeurs
Image [4] - Désactiver Heartbeat uniquement dans le backend : pas d'impact sur le frontend et l'expérience d'édition

VIII. pièges communs et liste de contrôle

1. l'échec de la sauvegarde automatique de la rédaction

raison d'êtreLes personnes handicapées : Misdisabled (en anglais) poste page web
régler (un litige): Accusé de réception $screen->base === 'post' exclu

2. les commandes WooCommerce ne sont pas actualisées

raison d'êtreLa page de commande s'appuie sur Heartbeat
régler (un litige)Liste blanche : Whitelisting

3. l'utilisation abusive du guichet

raison d'être: Utilise l'outil init / wp_enqueue_scripts
régler (un litige): à utiliser uniquement admin_enqueue_scripts

4. l'absence de conditions de jugement

raison d'être: :get_current_screen() appel prématuré
régler (un litige): Ne l'utilisez pas dans les init crochets

IX. comment vérifier si elle est réellement en vigueur

Méthode 1 : Panneau Réseau du navigateur

  1. Ouvrir la page non modifiable du backend
  2. filtration rythme cardiaque / admin-ajax.php
  3. Plus de demandes cycliques ✅

Méthode 2 : journaux du serveur

  • admin-ajax.php Diminution significative du nombre de demandes
  • PHP-FPM - Chute de charge

X. Résumer (donner des conclusions directes)

Le principe d'optimisation Heartbeat ne tient qu'en une phrase :

Ne désactivez pas les fonctions dont vous avez besoin, mais seulement les scènes dont vous n'avez pas besoin.

Meilleures pratiques :

  • La réception ne bouge pas
  • ✅ La page d'édition ne bouge pas
  • ✅ Désactivation des pages non modifiables en arrière-plan
  • ✅ Contrôle au niveau du code pour éviter les dépendances des plugins

Je peux vous aider à franchir l'étape suivante si vous le souhaitez :

  • pousser WooCommerce / Content Station / SaaS Backend Une version personnalisée pour vous
  • Vous aider à assembler celui-ci Structure technique SEO du blog (H1-H4 + Meta)
  • Ou simplement vous donner un Version réutilisable de mu-plugin


Contactez nous
Vous n'arrivez pas à lire le tutoriel ? Contactez-nous pour une réponse gratuite ! Aide gratuite pour les sites personnels et les sites de petites entreprises !
Service clientèle WeChat
Service clientèle WeChat
Tel : 020-2206-9892
QQ咨询:1025174874
(iii) Courriel : info@361sale.com
Horaires de travail : du lundi au vendredi, de 9h30 à 18h30, jours fériés.
© Déclaration de reproduction
Cet article a été écrit par : I heard your name is Bo
LA FIN
Si vous l'aimez, soutenez-le.
félicitations588 partager (joies, avantages, privilèges, etc.) avec les autres
commentaires achat de canapé

Veuillez vous connecter pour poster un commentaire

    Pas de commentaires