לאחרונה הבנתי שלמעשה הרבה אנשים מוותרים או על תבנית שהם אוהבים, או על העבודה עם ווידג'טים פשוט כי התבנית לא תומכת בהם. שדרוג התבנית כך שתתמוך בווידג'טים כנראה לא ברור ולא טריויאלי לאנשים והם פשוט מוותרים.
עקב כך החלטתי לכתוב מדריך צעד אחר צעד להוספת תמיכת ווידג'טים לתבניות וורדפרס.
יש לא מעט תבניות וורדפרס שאינן תומכות בווידג'טים, אכן ניתן להשתמש בן כמו שהן, מאידך ניתן גם פשוט לתקן אותן כך שיתמכו בהם.
המתרגמים שבינינו משתדלים גם הם לבחור רק תבניות עם תמיכה בווידג'טים, במקום פשוט להוסיף את התמיכה תוך כדי התרגום.
אני מקוה שבעקבות מדריך זה המצב ישתנה.
עד כה נתקלתי רק בתבנית אחת שלא הצלחתי להמיר לתמיכה בווידג'טים, כך שהמלאכה לא כל כך קשה.
על מנת לגרום לתבניות וורדפרס לתמוך בווידג'טים תצטרכו ידע ב: HTML, CSS, PHP.
מדריך ההמרה נמצא למעשה באתר של חברת Automattic ההורים של וורדפרס, אני למעשה אתן כאן הסבר משולב דוגמה עבור תבנית ספציפית.
את הוספת התמיכה בווידג'טים בשלבים נבצע על התבנית benevolence שתרגמה שרון.
בחרתי בתבנית זו משתי סיבות, הראשונה כי ביקשו ממני עזרה בהסבה שלה לתמוך בווידג'טים, השניה כי היא דווקא לא מבוססת על המבנה הפשוט והקלאסי של רשימה לא ממויינת.
ראשית נפתח את הסרגל הצדדי ונראה כי הוא בנוי מ-div ראשי בשם sidebar שבתוכו עוד div-ים שונים עבור החלקים השונים שבסרגל.
כלומר, על מנת שהתבנית תתמוך בווידג'טים, אנחנו צריכים להגיע לאחד משני מצבים:
- שהסרגל הצדדי יהיה בנוי מרשימה לא ממוינת
- שהווידג'טים שלנו יצרו div-ים כמו שבסרגל כפי שהוא כרגע
אופציה מספר 1 כוללת יותר עבודה והיא פחות טריוויאלית, אופציה מספר 2 כוללת בעיה – ווידג'ט הקישורים לא מתנהג לפי הכללים ומיוצר תמיד כרשימה. אנחנו עדיין נבחר באפשרות השניה ונראה איך מתמודדים עם הבעיה שטמונה בה.
ראשית נשנה את הקובץ sidebar.php כך שאחרי ה-div הראשי של הסרגל נוסיף את הקוד ל:
1 2 |
וכן נוסיף שורת סגירה לתנאי בסוף הקובץ לפני סגירת ה-div:
1 | <?php endif; ?> |
הקוד הזה למעשה אומר לתבנית להפעיל את הווידג'טים אם התוסף קיים ואם נעשה בו שימוש, אחרת תוצג ברירת המחדל.
השלב הבא הוא יצירת קובץ functions.php זה הקובץ שאומר לוורדפרס איך לייצר ווידג'טים חדשים.
נחזור להסתכל על sidebar.php ונשים לב לפרטים הבאים: מה מופיע לפני ואחרי ווידג'ט, מה מופיע לפני ואחרי הכותרת של הווידג'ט.
במקרה שלנו, אחרי הווידג'ט מופיעה ירידת שורה
1 | <br /> |
לפניו לא מופיע כלום והכותרת מוקפת ב
1 | <div class="title"></div> |
נייצר קובץ חדש בשם functions.php שיכיל את הקוד הראשוני הבא:
1 2 3 4 5 6 7 8 9 | <?php if ( function_exists('register_sidebar') ) register_sidebar(array( 'before_widget' => '', 'after_widget' => '', 'before_title' => '', 'after_title' => '', )); ?> |
עכשיו נוסיף את המידע שאספנו לתוך הקובץ ונקבל את התוצאה:
1 2 3 4 5 6 7 8 9 | <?php if ( function_exists('register_sidebar') ) register_sidebar(array( 'before_widget' => '<br />', 'after_widget' => '', 'before_title' => '<div class="title">', 'after_title' => '</div>', )); ?> |
שימו לב שכל מה שעשיתי הוא למלא את השדות במידע שאספנו קודם.
עכשיו בעיקר נותר לבדוק ולהתאים את ה-css אם צריך.
לכו לתפריט עיצוב בבלוג ובדקו שהתבנית אכן רשומה עכשיו כתבנית בעלת ווידג'טים, כלומר שתת התפריט "ווידג'טים לבר הצדדי" מופיע.
הכנסו לתפריט הכניסו ווידג'טים לכו לבדוק אם התבנית עובדת.
אם עשיתם הכל קשורה, הווידג'ט היחיד שעשוי לעשות בעיות הוא ווידג'ט הקישורים.
ווידג'ט הקישורים בניגוד לשאר הווידג'טים אינו יודע לקבל מתוסף הווידג'טים והתבנית הגדרות עיצוב, ותמיד מייצר קוד בצורה הבאה:
1 2 3 4 5 6 7 8 9 10 | <li id="linkcat-1"> <h2> קישורים </h2> <ul> <li> <a href="http://www.dontsmile.info/"> תום </a> </li></ul></li> |
במקרה שלפנינו הבדלי העיצוב כמעט ואינם נראים ולכן לא טרחתי לשנותם, אבל יש מקרים שבהם ההבדלים הם משמעותיים, במקרים שכאלו נצטרך לערוך את קובץ ה-CSS ולשנות שם את העיצוב של ווידג'ט הקישורים.
זהו, סיימנו.
נהניתם ? הרשמו לעדכוני RSS !
הרבה פעמים הבעיה היא לאו דווקא זה שהתבנית לא תומכת ווידג'טים ברמה הטכנית, אלא שהיא בנויה באופן שקשה להכניס לתוכו ווידג'טים מבחינה עיצובים.
דוראבל היא כזו – אין שם שום מקום מתאים לדחוף את הווידג'טים, כי הסיידבר הוא בעצם הכותרת התחתית…
פינגבאק: ביקורת בלוגים #1 | חיים בקליק
פינגבאק: עשרה מדריכים בבלוג ששווה לקרוא : הבלוג של אח"י דקר
שאלה:
בתבנית מגזין שהסיידבר שלה נמצא בכותרת תחתית אז אין בערכה קובץ בשם סייבר
איזה קובץ צריך לערוך כדי להוסיף תמיכה לתבנית כזו?
והאם התהליך זהה לתבנית רגילה?
Quite insightful post. Never believed that it was this simple after all. I had spent a excellent deal of my time looking for someone to explain this topic clearly and you’re the only 1 that ever did that. Kudos to you! Keep it up
Sick! Just obtained a brand-new Pearl and I can now read your weblog on my phone’s browser, it didn’t work on my outdated 1.
Fairly insightful submit. Never believed that it was this simple after all. I had spent a excellent deal of my time looking for someone to explain this subject clearly and you’re the only 1 that ever did that. Kudos to you! Keep it up
How is it that just anybody can publish a blog and get as popular as this? Its not like youve said anything incredibly impressive –more like youve painted a pretty picture above an issue that you know nothing about! I dont want to sound mean, here. But do you actually think that you can get away with adding some pretty pictures and not definitely say anything?