כן, וורדפרס שומרת את העבודה שלכם אוטומטית. בזמן שאתם עורכים פוסט עם שינויים שלא נשמרו, היא שומרת עותק כל 60 שניות כברירת מחדל, גם בעורך הבלוקים וגם בעורך הקלאסי. אם הדפדפן קורס או שהחיבור נקטע, תוכלו לשחזר את העותק הזה ולחסוך לא מעט עצבים.
הקבוע AUTOSAVE_INTERVAL קובע באיזו תדירות זה קורה. הגדילו אותו כדי לצמצם את מספר השמירות לשרת, או הקטינו אותו אם גם דקה של כתיבה שהולכת לאיבוד היא יותר מדי בשבילכם.
שינוי משך הזמן בין שמירות אוטומטיות
הוסיפו את השורה הבאה לקובץ wp-config.php, מעל השורה /* That's all, stop editing! */. הערך הוא בשניות.
define( 'AUTOSAVE_INTERVAL', 120 );
בדוגמה הזו השמירה תתבצע כל 2 דקות (120 שניות). השורה חייבת להופיע מעל אותה שורה, מכיוון שמיד אחריה וורדפרס מגדירה ברירת מחדל משלה של 60 שניות, אבל רק אם הקבוע עדיין לא הוגדר.
כיצד השמירה האוטומטית עובדת בכל עורך
שני העורכים קוראים את אותו קבוע, אבל שולחים את השמירה האוטומטית בדרכים שונות.
- עורך הבלוקים: מעביר את
AUTOSAVE_INTERVAL להגדרות העורך ושומר דרך ה-endpoint בשם autosaves של ה-REST API.
- העורך הקלאסי: שולח את השמירות האוטומטיות באמצעות ה-Heartbeat API. אם תבטלו את ה-Heartbeat במסך עריכת הפוסט כדי להפחית את העומס על השרת, גם השמירה האוטומטית בעורך הקלאסי תפסיק לעבוד.
עורך הבלוקים שומר בנוסף גיבוי ב-sessionStorage של הדפדפן כל 15 שניות. העותק המקומי הזה נפרד מ-AUTOSAVE_INTERVAL ולעולם לא מגיע לשרת.
שמירות אוטומטיות לעומת רוויזיות
שמירה אוטומטית אינה רוויזיה רגילה, והכללים תלויים בסטטוס הפוסט ובזהות המשתמש שעורך אותו.
- טיוטה שלכם: השמירה האוטומטית דורסת את הטיוטה עצמה. לא נוצרת שורה נוספת (במסד הנתונים).
- פוסט שפורסם, או טיוטה של משתמש אחר: השמירה האוטומטית נשמרת בטבלה
wp_posts כרוויזיה בשם {post_ID}-autosave-v1. יש אחת כזו לכל משתמש בכל פוסט, והיא נדרסת בכל שמירה.
כאשר וורדפרס מוחקת רוויזיות ישנות כדי לעמוד במגבלה של WP_POST_REVISIONS, היא לעולם לא מוחקת שמירות אוטומטיות. גם הגדרת WP_POST_REVISIONS ל-false לא מבטלת את השמירה האוטומטית.
מכיוון שיש לכל היותר שמירה אוטומטית אחת לכל משתמש בכל פוסט, הגדלת משך הזמן כמעט לא משפיעה על גודל מסד הנתונים. כדי לשלוט בגידול הרוויזיות, הגבילו את מספר הרוויזיות או בטלו את הרוויזיות במקום זאת.
בחירת ערך
ברירת המחדל של 60 שניות מתאימה לרוב האתרים. יש כמה מקרים שמצדיקים שינוי:
- כמה עורכים שעובדים במקביל באחסון משותף: ערך של 120 עד 300 שניות יפחית את מספר השמירות האוטומטיות. בעורך הקלאסי, בקשות ה-Heartbeat ממשיכות לפי התזמון שלהן.
- כתיבת תוכן ארוך שבו כל פסקה חשובה: 30 שניות. כל שמירה אוטומטית מחליפה את הקודמת, כך שמסד הנתונים לא גדל.
לקבועים נוספים שכדאי להגדיר באותו קובץ, תנו מבט בפוסט אופטימיזציה לקונפיגורציה של וורדפרס באמצעות wp-config.php.
שאלות נפוצות
הנה כמה שאלות נפוצות על השמירה האוטומטית בוורדפרס:
האם וורדפרס שומרת פוסטים אוטומטית?
כן. כשיש שינויים שלא נשמרו, וורדפרס שומרת אוטומטית כל 60 שניות כברירת מחדל. תוכלו לשנות את משך הזמן עם הקבוע AUTOSAVE_INTERVAL בקובץ wp-config.php.
היכן וורדפרס שומרת את השמירות האוטומטיות?
בטבלה wp_posts. טיוטות שלכם נדרסות במקומן, ואילו שמירות אוטומטיות של פוסטים שפורסמו נשמרות כפוסט מסוג revision בשם {post_ID}-autosave-v1, אחת לכל משתמש.
האם אפשר לבטל את השמירה האוטומטית לגמרי?
אין לכך הגדרה בליבה. ערך גבוה מאוד ל-AUTOSAVE_INTERVAL, כמו 86400, מפסיק בפועל את השמירות האוטומטיות לשרת, אך הגיבוי המקומי של עורך הבלוקים בדפדפן ממשיך לפעול. איבוד עבודה שלא נשמרה הוא בדרך כלל בעיה גדולה יותר מהשמירות הנוספות.
האם AUTOSAVE_INTERVAL משפיע על ה-Customizer?
כן. ה-Customizer (מסך ״התאמה אישית״) משתמש באותו קבוע בכדי לקבוע באיזו תדירות לשמור אוטומטית שינויים שטרם פורסמו ב-changeset הנוכחי.