יצירת תבנית בת בוורדפרס
נכתב ע"י יוחאי ירמיהו10 תגובות
כאשר אנחנו מעדכנים תבנית בוורדפרס העדכון יחליף את קבצי התבנית הקיימת וימחק את השינויים שעשינו באתר. תבנית בת (Child Theme) נותנת פתרון לבעיה בכך שהיא מאפשרת ליצור תיקייה חדשה שמכילה רק את הקבצים שעשינו בהם שינויים, כך שעדכון התבנית לא ישפיע על הקבצים עם השינויים.
במדריך זה נלמד אתכם איך יוצרים תבנית בת בוורדפרס על מנת להימנע מאיבוד השינויים שעשיתם לאתר בעת עדכון התבנית.
למה צריך ליצור תבנית בת בוורדפרס?
אם יש לכם ניסיון בתחום של בניית אתרים בוורדפרס אז אתם בטח כבר יודעים שהמערכת של וורדפרס מתעדכנת באופן אוטומטי לעיתים קרובות. בנוסף למערכת גם תוספים לוורדפרס בהם אתם משתמשים מצריכים עדכונים לעיתים תכופות על מנת להוסיף פיצ'רים חדשים ועל מנת לפתור בעיות ופרצות אבטחה קיימות.
אז כמו התוספים והמערכת גם תבנית העיצוב שבה אתם משתמשים מצריכה עדכונים מידי פעם על מנת שתוכל להמשיך לעבוד בהתאמה עם העדכונים של וורדפרס והתוספים.
אם אתם מתכוונים לעשות שינויים לתבנית עצמה אז מומלץ ליצור תבנית בת לתבנית הקיימת. תבנית בת היא בעצם תיקייה נוספת של התבנית שבה אתם טוענים אך ורק את הקבצים של התבנית שבהם עשיתם שינויים.
באופן אישי לדעתנו עדיף לבטל עדכונים אוטומטיים בוורדפרס ולבצע את העדכונים לעיתים קרובות באופן ידני רק לאחר שיצירתם גיבוי לאתר וורדפרס. ללא גיבוי עדיף לא לבצע עדכונים לתוספים, לתבניות או למערכת עצמה של וורדפרס
לדוגמא: אם תרצו לשנות את התוכן המוצג בעמוד header.php תוכלו להעתיק אותו לתבנית הבת ולבצע בו את השינויים שאתם רוצים. כל עוד תבנית הבת פעילה אז הקובץ הזה יחליף את הקובץ הקיים בתבנית המקורית. בהרבה מקרים השינוי המרכזי שעושים באמצעות תבנית הבת הוא שינוי של עיצוב האתר על ידי הוספת קוד CSS שיחליף את הקוד של התבנית המקורית.
למי שלא יודע מה זה CSS מדובר על קוד שמאפשר לשנות את העיצוב של האתר, המבנה, הצבעים, הפונטים וכו'….
לעיתים מסוימות כאשר אתם קונים תבניות בתשלום אתם תקבלו ביחד עם התיקייה של התבנית גם תיקייה של תבנית הבת ותוכלו פשוט להעלות את שתי התיקיות לשרת האחסון ולהפעיל את תבנית הבת.
אם לא קיבלת עם התבנית תיקייה של תבנית הבת אז תוכלו ליצור אותה בעצמכם כפי שנסביר בפסקה הבאה.
יצירה והפעלה של תבנית בת בוורדפרס
על מנת ליצור תבנית בת (Child Theme) תצטרכו להיכנס לשרת האחסון של האתר שלכם וליצור שם תיקייה חדשה. לתיקייה החדשה תקראו בשם התיקייה של התבנית שבה אתם משתמשים כעת ותוסיפו child לאחר השם של התיקייה.
כך שאם שם התיקייה של התבנית הנוכחית הוא yydevelopment-wordpress תקראו לתיקייה החדשה בשם yydevelopment-wordpress-child. ניתן גם להגדיר שם אחר לתיקייה אך זאת הפרקטיקה בעת יצירת תבנית בת בתוך וורדפרס.
בתוך התיקייה החדשה שיצרתם תצטרכו ליצור קובץ חדש ולקרוא לו בשם style.css. תפתחו את הקובץ באמצעות עורך תוכן או באמצעות Notepad ותוסיפו לתוך הקובץ את הקוד הבא:
/*
Theme Name: Theme Name For Admin Panel
Template: current-theme-folder-name
*/
@import url("../current-theme-folder-name/style.css");
במקום "Theme Name For Admin Panel" תגדירו את שם התבנית שאתם רוצים שתופיע באזור ניהול. בדרך כלל נהוג להוסיף את המילה Child לשם של התבנית. כך שאם שם התבנית היא YYDevelopment WordPress אפשר לשנות אותה לשם הבא YYDevelopment WordPress Child.
במקום "current-theme-folder-name" תכניסו את שם התיקייה של התבנית שלה אתם רוצים להוסיף תבנית בת.
אם שם התיקייה של התבנית הפעילה הוא yydevelopment-wordpress אז תגדירו את השם הזה בשורה של Template ובשורה האחרונה של הקוד וזאת התבנית שתטען ביחד עם תבנית הבת שכרגע יצרתם.
ניתן לראות מתחת איך הקוד אמור להופיע בתוך הקובץ style.css לאחר שביצעתם את השינויים:
/*
Theme Name: YYDevelopment WordPress Child
Template: yydevelopment-wordpress
*/
@import url("../yydevelopment-wordpress/style.css");
בנוסף לקובץ style.css מומלץ להעתיק מהתיקייה של התבנית המקורית את הקובץ screenshot לתוך התיקייה של תבנית הבת שיצרתם. קובץ זה בעצם מכיל את צילום המסך של התבנית שמופיע בתוך אזור הניהול של וורדפרס. זה לא חובה להעתיק את הקובץ אבל זה יאפשר לזהות את התבנית בצורה קלה יותר מתוך אזור הניהול.
אחרי שסיימתם ליצור את תבנית הבת כנסו לאזור הניהול של התבניות ותפעילו את התבנית עם השם החדש שהגדרתם (שימו לב שאתם מפעילים את תבנית הבת ולא את התבנית הרגילה בטעות).
שינוי קבצים ותצוגה באמצעות תבנית הבת
לאחר ההפעלה של תבנית הבת תוכלו להעתיק לתוך התיקייה את הקבצים שאתם רוצים לשנות.
כמעט כל קובץ שתעתיקו לתוך התיקייה יחליף את הקובץ מהתבנית המקורית. במידה ותעשו שינויים באותו הקובץ השינויים יחולו באתר וכאשר תבצעו עדכון לתבנית האב מה שאומר שהשינויים ישמרו מאחר והקובץ עם השינויים עדיין נטען מתוך תבנית הבת והוא מחליף את הקובץ בתבנית שעדכנתם.
הערה: חשוב שהקובץ שאתם מחליפים יופיע באותו מיקום בתבנית הבת כפי שהוא מופיע בתבנית המקורית וששם הקובץ יהיה זהה לשם שמופיע בתבנית הרגילה.
לדוגמא: עם בתבנית המקורית יש את הקובץ file.php והוא נמצא בתוך תיקייה בשם functions תצטרכו ליצור בתבנית הבת תיקייה חדשה בשם functions ובתוכה להכניס את הקובץ file.php.
ההיררכיה של התיקיות חייבת להישאר זהה על מנת שהקובץ בתבנית הבת יחליף את הקובץ בתבנית האב.
הערה נוספת: הקובץ היחידי שהמערכת של וורדפרס לא מחליפה הוא הקובץ functions.php וכאשר אתם יוצרים את הקובץ הזה בתבנית הבת הקובץ ימשיך להיטען גם מהתבנית המרכזית. הוספה של קובץ זה פשוט תאפשר לכם ליצור פונקציות נוספות בתבנית הבת.
במידה ואתם לא בונים את האתר בעצמכם אז חשוב לפנות אל בונה אתרים שהולך להשתמש בתבנית המכילה תבנית בת על מנת להימנע מבעיות עתידיות בעת ביצוע עדכונים לאתר.
אם אהבתם את המדריך ואתם רוצים לשתף אותו ניתן לעשות זאת על ידי לחיצה על כפתורי השיתוף מתחת:
יוחאי ירמיהו
בעל תואר ראשון בלוגיסטיקה וכלכלה ותואר הנדסאי בתעשייה וניהול עם התמחות בשיווק.
מעצב גרפי ומפתח אתרים עם ניסיון מעשי של למעלה מעשור בכל מה שקשור לעולם הדיגיטלי. נינג'ה מומחה למערכת המופלאה לבניית אתרים שנקראת וורדפרס, וזהו בסך הכל :-).
מאמרים נוספים שעשויים לעניין אתכם:
במדריך הבא נלמד אתכם איך לעבוד עם תבניות וורדפרס. נסביר איך להתקין תבניות, מאיפה להוריד תבניות בחינם ובתשלום, ואיך למצוא תבניות RTL שתומכות גם בעברית.
בשנים האחרונות אלמנטור (Elementor) הפך להיות אחד התוספים המובילים לבניית אתרים בוורדפרס. במדריך זה תוכלו ללמוד איך ליצור, לערוץ ולנהל עמודים באלמנטור.
אחת המשימות החשובות ביותר שכל בעל אתר צריך לבצע לעיתים קרובות היא גיבוי לאתר. במדריך זה נלמד אתכם איך לבצע גיבוי בקלות ואיך לעשות שחזור לאתר וורדפרס.
תפריטי הניווט בוורדפרס הם חלק חשוב ואינטגרלי באתר שלכם. במדריך זה תוכלו ללמוד כל מה שתרצו לדעת על יצירה, עריכה והוספה של תפריטים ניווט באתר וורדפרס.
עם הדרכה קצרה יצירת עמודים בוורדפרס תהפוך לפעולה פשוטה וקלה עבורכם. צפו במדריך הבא ותלמדו איך ליצור ולערוך עמודים בוורדפרס בעצמכם בצורה נכונה וללא מאמץ.
במדריך זה נסביר איך לנהל בלוג בוורדפרס ואיך ליצור פוסטים חדשים לבלוג. נסביר איך להגדיר קטגוריות, איך להגדיר תגיות, איך להוסיף תמונות, איך לפרסם פוסט מתוזמן ועוד...
יש לכם שאלות או משהו להוסיף? שתפו אותנו בתגובות מתחת!
אם יש לכם שאלות או משהו להוסיף נשמח לשמוע מכם בתגובות מתחת ולסייע במידת הצורך.
10 תגובות
לא ניתן לפרסם תגובות
יצרתי תבנית בת באתר שלי לפי המדריך שלך והאתר עכשיו מוצג בצורה מוזרה.
אני חושבת שזה לא טוען את הקובץ RTL מהתבנית המקורית. מה אני יכולה לעשות כדי לתקן את זה?
שלום ריקי,
סביר להניח שאת צודק. תבניות מסוימות טוענות גם קובץ RTL שמאפשר לסדר את כיוון הטקסט שיופיע מימין לשמאל (כמו בשפה עברית) ולא משמאל לימין (כמו בשפה האנגלית).
ברוב המקרים הקובץ נקרא rtl.css ואת יכולה לנסות ולטעון אותו לתבנית הבת באותה צורה שטענת את הקובץ style.css לתוך תבנית בת.
אז מה שאת צריכה לעשות זה פשוט להוסיף שורה נוספת של import עם הכתובת של הקובץ rtl.css (את צריכה לשנות את current-theme-folder-name לתיקייה שבה הקובץ נמצא).
@import url("../current-theme-folder-name/rtl.css");
אני צריך להשתמש באותם קלאסים של תבנית האב או שאני יכול לעשות משלי?
שלום חיים,
כשאתה אומר קלאסים אתה מתכוון ל-Class של עיצוב באמצעות CSS?
במידה וכן אז עדיף להשתמש ב-Class של תבנית האב ולעקוף את העיצוב המקורי באמצעות הקובץ css החדש שאתה יוצר בתבנית הבת (לפעמים תצטרך להשתמש ב-important! בקובץ css בשביל שתוכל לעקוף את השינויים).
בגדול אתה כן יכול להחליף גם את קבצי התבנית ולהוסיף class משלך. הבעיה היא שאם בעתיד תעדכן את התבנית ויהיה מצב שתצטרך להחליף בחזרה את אחד מהקבצים אז אתה תצטרך להוסיף מחדש את כל ה-class שהוספת לקובץ הישן ואם מדובר בהרבה שינויים זה יהפוך את העבודה למסובכת בהמשך.
וזו המטרה של תבנית בת?
או שהמטרה שלה רק כדי לשמור על העיצובים שאני עושה בשאר האתר?
כלומר אני מתכוון לומר האם התפקיד של תבנית הבת הוא לאפשר לי לדרוס שינויים של התבנית המקורית או לשמור על העיצובים שלי בשאר חלקי האתר ובלי לדרוס את העיצוב המקורי של תבנית הבת?
תודה רבה !
המטרה של תבנית הבת היא לאפשר לך לשמור את השינויים שביצעת בתבנית כאשר אתה מעדכן את התבנית המקורית.
אם למשל אתה תבצע את כל השינויים בתבנית המקורית (תבנית האב) ואתה תצטרך לבצע עדכון לתבנית אז ברגע שתעשה את זה העדכון יחליף את כל קבצי התבנית וכל השינויים שעשית בתבנית ימחקו.
ברגע שיש לךתבנית בת אז בדרך כלל כאשר תבצע עדכון לתבנית האב זה לא ישפיע על השינויים שעשית באתר בגלל שהקבצים של תבנית הבת לא יושפעו מהעדכון.
למה כשאני עושה import ל header הוא לא קורא אותו?
תודה רבה רבה
שלום חיים.
הפקודה import היא פקודה לייבוא של קבצי css ולא לייבוא של קבצים אחרים.
במקרה של header.php אתה לא צריך לעשות לו import. אתה צריך פשוט להעתיק את הקובץ לתיקייה של תבנית הבת שיצרת והוא אמור להחליף את הקובץ header.php מהתיקייה של התבנית המקורית.
כך שברגע שאתה עושה שינויים לקובץ header.php בתבנית הבת השינויים אמורים להשפיע על האתר.
עוד שאלה שלא קשורה לפה
אני כבר תקופה ארוכה מתעניין בתחום הזה של בניית אתרים ,והשאלה היא אם כדאי להשקיע בזה כי יש היום הרבה תבניות מוכנות ו….איך אומרים לא קשה לבנות אתר היום במיוחד שיש את וורדפרס ויש היום גם את אלמנטור ,והשאלה גם כמה ביקוש יש לאתרים, ככ הרבה?
,מה דעתך בעניין?|
תודה רבה רבה רבה
שאלה שקשה לענות עליה.
יש הרבה ביקוש לבניית אתרים, הבעיה היא שגם יש הרבה מאוד היצע (הרבה תחרות בשוק).
העובדה שהיום אפשר לבנות אתרים בלי הרבה ידע הורידה מעט את הביקוש (חלק מהאנשים בונים אתר לבד) והגדילה את התחרות בגלל שהשוק מוצף בבוני אתרים שפשוט משתמשים בתבנית מוכנה ומשנים אותה כפי שציינת.
אם זה תחום שעוד אין לך בו ניסיון היית ממליץ לך לעשות את זה בתור עבודות מהצד, לבנות תיק עבודות ולראות לבד עם הזמן האם זה תחום שיכול לספק את ההכנסה שאתה מחפש.
בהצלחה