עדכון ליבת WordPress – למה לא לדחות אפילו יום אחד

עדכוני minor הם תיקוני אבטחה. עדכוני major דורשים תכנון. ככה מבצעים את שניהם בלי שבירה.

WordPress משחרר עדכוני אבטחה תכופים. כל שבוע נמצאת פגיעות חדשה בליבה או ברכיב מרכזי, ועדכון minor (לדוגמה 6.4.1 → 6.4.2) הוא כמעט תמיד תיקון אבטחה. דחיית עדכון מעבר ל-72 שעות מ-published CVE היא הימור: סורקים אוטומטיים שואבים את ה-changelog וצדים אתרים שלא עודכנו.

למה זה משנה

סטטיסטית, רוב הפריצות לאתרי WordPress נובעות מליבה או תוסף לא מעודכן. אתר עם WordPress 6.2 (שיצא ב-2023) ב-2026 חשוף לעשרות פגיעויות מצטברות שכבר תוקנו ב-6.6, 6.7 ו-6.8. CVE שפורסם בעצם מספק לתוקף את כתובת ה-endpoint, את ה-payload, ולעיתים גם POC מוכן ב-Metasploit. השאלה אינה "האם יתקפו את האתר" אלא "מתי הסורק האוטומטי יגיע אליו". אתר שלא עודכן 6 חודשים נסרק בממוצע 50–200 פעמים ביום, וכל סריקה היא ניסיון לזהות גרסה.

איך לזהות

בלוח הבקרה: Dashboard > Updates. אם רואים "WordPress X.Y.Z is available" – יש עדכון. בנוסף, השווה את $wp_version בקובץ wp-includes/version.php לגרסה האחרונה שמופיעה ב-https://wordpress.org/download/. דרך WP-CLI: wp core check-update.

איך לתקן

תרחיש 1 – עדכון minor (6.4.1 → 6.4.2): גבה את האתר (UpdraftPlus או דומה לאחסון חיצוני), גש ל-Dashboard > Updates, לחץ "Update Now". תהליך כ-30 שניות. רוב המקרים: שום דבר לא נשבר, האתר ממשיך כרגיל.

תרחיש 2 – עדכון major (6.4 → 6.5): שכפל לסביבת staging תחילה. ב-cPanel: WP Toolkit > Clone. ב-Plesk: WordPress Toolkit > Clone. בדוק ב-staging את: עמוד הבית, פוסט יחיד, עמוד קטגוריה, עורך הבלוקים, יצירת פוסט חדש, התקנת תוסף, checkout (אם WooCommerce). רק אם הכל עובד – חזור על העדכון בייצור.

הפעלת auto-update לעדכוני minor:

// ב-wp-config.php
define('WP_AUTO_UPDATE_CORE', 'minor'); // רק minor (ברירת מחדל)
// או:
define('WP_AUTO_UPDATE_CORE', true);    // גם major

אם משהו נשבר אחרי עדכון:

wp core download --version=6.4.1 --force
# שחזור גרסה קודמת אם קריטי

טעויות נפוצות

טעות ראשונה: לעדכן בלי גיבוי. גם עדכון minor יכול לחשוף תאימות שבורה עם תוסף ישן. בלי גיבוי, אם משהו ישבר אתה תקוע. תמיד גבה לפני, גם אם זה לוקח 30 שניות נוספות. טעות שנייה: לעדכן major ישירות בייצור בלי staging. אנו ראינו אתרים שנפגעו פיזית מ-major update – ערכת נושא ישנה שלא נבדקה תחת PHP 8.2 + WP 6.5 פשוט לא רצה. טעות שלישית: לכבות את auto-update ל-minor "כדי לשלוט". זה אנטי-pattern. עדכוני minor הם בטוחים ולכן בטוחים לאוטומציה. תכוון רק את ה-major למצב ידני. טעות רביעית: לעדכן את הליבה ולשכוח את התוספים והתבנית. אחרי כל עדכון core, גש ל-Plugins ולחץ "Update all" אם יש – לעיתים תוספים מתעדכנים ביחד עם שינויי API של הליבה.

בדיקה לאחר תיקון

אחרי העדכון, גלוש ל-Dashboard > Updates ובדוק שהשורה הכחולה "WordPress is up to date" מופיעה. גש ל-Tools > Site Health וודא שאין הודעות "Critical issues". טען עמוד הבית ב-DevTools > Console ובדוק שאין שגיאות JS. במצב גלישה פרטית, פתח שלושה דפים שונים – אם נטענים תקין, העדכון הצליח.

בנוסף, חשוב לזכור שעדכון ליבה משפיע גם על קבצי תרגום. אם האתר שלך בעברית, יש לוודא שאחרי כל עדכון major הוורסיה של קבצי .po/.mo תואמת – לעיתים מחרוזות חדשות בליבה לא תורגמו עדיין ויופיעו באנגלית. גש ל-Tools > Languages או דרך Loco Translate ובדוק שמלא 100% של המחרוזות מתורגם. עדכון ליבה גם עלול לדרוס שינויים שעשית ידנית בקבצי הליבה – זו כמובן אנטי-pattern, אבל אם בעבר נגעת ב-wp-includes/, ההתאמות יאבדו וצריך לשחזר.

טיפ: ניהול עדכונים על מספר אתרים מסובך. RankPlus, ManageWP או MainWP מאפשרים עדכון של עשרות אתרים בלחיצה אחת, עם גיבוי אוטומטי לפני כל עדכון – שווה את העלות אם יש לך יותר מ-3 אתרים.