מאמר זה נכתב על-ידי עמית מורנו ב-16 ביוני 2017

בתור משתמשי וורדפרס אתם בטח מכירים את זה שבזמן שאתם עורכים עמוד כלשהו, מתבצעת שמירה אוטומטית כל כמה שניות. פעולה זו מיושמת על ידי מנגנון שנקרא WordPress Heartbeat API.


כברירת מחדל, ה-Heartbeat מבצע שמירה אוטומטית של שינויים כל 15 שניות במקומות מסוימים במערכת כמו למשל במסך עריכת פוסט או עמוד. השמירה מיושמת במטרה לשמור על נתונים במקרה ואובד החיבור עם הדפדפן של המשתמש, או למקרה והמשתמש נטש בטעות מבלי לשמור. אך שמירה זו גם יכולה להוביל לעיכוב משמעותי של טעינת האתר כאשר אנחנו עובדים על אתר שכבר נמצא באוויר, ובייחוד כשיותר ממשתמש אחד עובד בתוך המערכת.

באמצעות פונקציה ייעודית ניתן להגדיר את התזמון של מנגנון זה בין 15 ל-60 שניות, או לבטל את מנגנון ה-Heartbeat לחלוטין. את הפונקציה הזו אנו נטמיע בקובץ functions.php. אם אינכם בקיאים בהטמעת קוד בקובץ זה מומלץ להשתמש בתוסף Heartbeat Control.

כפי שציינתי קודם לכן, ניתן לשלוט על מנגנון זה באמצעות הגדרת התזמון מעל ל-15 שניות ועד ל-60 שניות, או לבטל לחלוטין את המנגנון. עם זאת, כאשר מבטלים מנגנון זה חשוב לזכור שלא יתבצעו יותר שמירות אוטומטיות של נתוני משתמשים בעת עריכה.

ניתן לבטל את מנגנון ה-Heartbeat של וורדפרס באמצעות הפונקציה הבאה:

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

או ״להאט מעט את קצב הלב של וורדפרס״, כלומר לבצע שמירה כל פרק זמן ארוך יותר, באמצעות הפונקציה הבאה:

function cnr_reduce_heartbeat( $settings ) {
        $settings['interval'] = 60; // You can choose between 15-60
        return $settings;
}
add_filter( 'heartbeat_settings', 'cnr_reduce_heartbeat' );

בהצלחה בבניית אתרי וורדפרס!