תבניות לא פעילות בוורדפרס: למה לא להשאיר אותן

תבניות שלא בשימוש הן עדיין קוד נגיש לעורך התבניות. כך משאירים את ההכרחי בלבד ומסירים את השאר.

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

למה זה משנה

תבנית מותקנת חושפת את הקבצים שלה ב-/wp-content/themes/THEME-NAME/. הקבצים נגישים דרך HTTP אם נטענים ישירות (CSS, JS, תמונות), והקוד PHP זמין דרך עורך התבניות ב-wp-admin. אם יש לתבנית פגיעות ידועה - למשל screenshot.php שמאפשר LFI כפי שהיה בעבר ב-PageLines - בוט יכול לנצל אותה גם אם התבנית לא פעילה. בנוסף, תבנית מסחרית ישנה שלא מקבלת עדכונים מהמפתח (החנות סגרה, המפתח עזב) הופכת לקוד מאובן שלא יקבל תיקון אבטחה לעולם.

שיקול נוסף: תבניות מודרניות (Twenty Twenty-Four, Twenty Twenty-Five) שוקלות מגה-בייטים, וכשיש 5 תבניות ישנות בנוסף לפעילה - זה משפיע על גודל הגיבוי, על זמן ה-deploy, ועל זמן הסריקה של תוספי אבטחה.

איך לזהות

גש ל-Appearance > Themes. כל תבנית שאינה מסומנת "Active" היא לא פעילה. דרך WP-CLI:

wp theme list --status=inactive --format=table

RankPlus משווה את התבנית הפעילה (get_stylesheet()) ואת ה-parent שלה (get_template()) לרשימת התבניות המותקנות, ומסמן את כל היתר.

איך לתקן

  1. החליטו אילו תבניות צריכות להישאר:
    • התבנית הפעילה - חובה.
    • התבנית הראשית (parent) אם זוהי תבנית ילד - חובה. אם תמחק, התבנית הילד תשבר.
    • תבנית fallback אחת של וורדפרס (Twenty Twenty-Four) - מומלץ ליתר ביטחון. אם התבנית הפעילה תישבר, וורדפרס יחזור אליה אוטומטית.
    • כל תבנית אחרת - מחק.
  2. גש ל-Appearance > Themes, רחף עם העכבר על תבנית, לחץ "Theme Details", ואז "Delete" בפינה הימנית/שמאלית התחתונה.
  3. אם מופיעה אזהרה "This theme is the parent of an active theme" - אל תמחק. זה ה-parent של התבנית הפעילה.
  4. חלופה דרך WP-CLI: wp theme delete THEME-SLUG.
  5. בדוק שאין שאריות של customizer ב-wp_options (חיפוש לפי שם התבנית).

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

  • מחיקת ה-parent של תבנית ילד פעילה: שובר את האתר מיד. ודא איזה parent של מה.
  • מחיקת כל תבניות Twenty*: אפס fallback. אם משהו ישבר בתבנית הפעילה, וורדפרס לא יוכל לחזור לתבנית ברירת מחדל.
  • השארת "Twenty Eleven" מ-2011: תבנית בת 14 שנים בלי עדכונים. תחליף ל-Twenty Twenty-Four.
  • מחיקה דרך FTP בלי המתנה: לפעמים תוסף cache עדיין מטמון נכסים מהתבנית הישנה. נקה cache אחרי המחיקה.

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

הרץ שוב wp theme list. אמורות להיות בערך 2-3 תבניות: הפעילה (ואם רלוונטי, ה-parent שלה) + תבנית fallback אחת. ב-RankPlus הסטטוס יחזור לירוק. גש לאתר וודא שהכל נראה תקין - לא אמור להיות שינוי כלל ממחיקת תבניות לא פעילות.

טיפ: אם אתה משתמש ב-FSE (Full Site Editing) ובתבנית block, ייתכן שיש לך "גלובל styles" שנשמרים גם אחרי מחיקת התבנית. זה לא בעיה אבטחתית, אבל זה יכול ליצור קונפליקט אם תתקין שוב את אותה תבנית - wp option delete theme_mods_THEME-SLUG ינקה. בנוסף, חשוב להיזהר עם תבניות מ-marketplaces שלא קיימים יותר (כמו ThemeForest items שהמפתח עזב): גם אם הן עובדות, הן לא יקבלו תיקוני אבטחה לעולם. במקרים כאלה, או חיפוש תחליף פעיל, או יצירת תבנית ילד עם תיקונים ידניים. צור גם בדיקה רבעונית לעדכוני תבנית: גש ל-Appearance > Themes ולחץ "Check again" כדי לוודא שאתה על הגרסה האחרונה. תבניות מסחריות שלא מתחדשות אוטומטית מוגדלות מסיכון אבטחה לאורך זמן. במיוחד אם הן כוללות גרסאות ישנות של ספריות JavaScript כמו jQuery, Slick או Bootstrap עם CVE ידועות. הקפד גם לבדוק תאימות לגרסת PHP החדשה לפני מחיקה - אם תבנית fallback ישנה לא תואמת PHP 8.2+, מחיקתה לא תזיק אבל תבנית פעילה לא תואמת תקרוס.