תבנית וורדפרס Twenty Twelve

בגרסה הבאה של WordPress תוכנס לשימוש תבנית ברירת מחדל חדשה בשם Twenty Twelve ‏(2012), כחלק ממסורת בה מוחלף עיצוב ברירת המחדל של התוכנה פעם בשנה. עיצוב זה יוכנס לשימוש בגרסה הבאה של וורדפרס (3.5), אבל זמין כבר עתה להורדה מאתר התבניות של וורדפרס.

הייחוד הגדול בתבנית זו לדעתי הוא היותה תבנית מגיבה (רספונסיבית). משמעות הדבר שהתבנית משתמשת ביכולות Media Queries של CSS3 כדי להתאים את מראה האתר לגדלי מסך שונים ללא צורך בתחזוקה של גיליון סגנון נפרד או תוספים מיוחדים שכל מטרתם היא לזהות את פרטי הדפדפן ולשלוח עבורו הוראות עיצוב מיוחדות. למעשה, ניתן להשתמש ביכולות אלו גם בהקשר של מחשבים רגילים ולא רק טלפונים ניידים ומחשבי לוח; נסו לשנות את גודל החלון של אתר שמשתמש ב־Media Queries ותראו איך אלמנטים שונים בדף משנים את המיקומים שלהם בהתאם לגודל החלון. עוד על התכונות החדשות של התבנית ניתן למצוא אצל רמי מאתר wp-tricks.

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

קובץ השפה זמין פה ובצורה בינרית כאן. הדרך הפשוטה ביותר לשלב תרגום בעברית לעיצוב היא להתקין את התבנית כרגיל דרך ממשק הניהול של המערכת או ידנית באמצעות העתקת הקבצים לתיקייה המתאימה לשרת, ולאחר מכן למקם את הקובץ הבינרי על השרת בתת התיקייה languages בשם he_IL.mo. הקובץ הבינרי מכיל את הקובץ הטקסטואלי לאחר שהועבר התאמות קלות, וניתן לייצר אותו ידנית באמצעות הפקודה msgfmt he_IL.po -o he_IL.mo אם מעוניינים לבנות אותו בעצמנו או לבצע שינויים בקובץ השפה לפני שממקמים אותו בשרת. כולי תקווה שהאנשים האחראים כיום על תרגום המערכת יראו לנכון לשלב חזרה את השינויים שביצעתי, כך שבעתיד נזכה לתצוגה עברית ברמה הגבוהה ביותר ולא נצטרך לבצע שינויים כלשהם בצורה ידנית לשם כך.

לפני שמשלבים תבנית באתר כדי תמיד לחשוב אם היא מתאימה לנו ואם נרצה לבצע שינויים כלשהם במראה התבנית לפני שנשלב אותה באתרים שלנו. אפשר כמובן לבצע שינויים בקבצי התבנית, אבל רצוי מאד להימנע מפעולה זו כדי לא לגרום לכך שהשינויים שנבצע יידרסו עם עדכון התבנית. כדי להתגבר על בעיה זו יש ליצור תבנית נוספת שתתבסס על התבנית המיועדת ("תבנית בת"). בצורה כזו תוך ניצול יכולות המערכת ויכולות ההדרגתיות של CSS נוכל ליצור תבנית משלנו שתחזיק רק את השינויים מתבנית ההורה כך שעדכונים שוטפים של תבנית ההורה לא ישפיעו על העיצוב המותאם אישית שלנו.

כדי ליצור תבנית בת, מספיק ליצור תיקייה חדשה בתוך תיקיית התבניות שלנו, ובה שני קבצים בלבד; style.css ו־rtl.css. תוכנם של הקבצים יהיה כדלקמן:
style.css
/*
Theme Name: My website theme
Theme URI:
Description:
Author:
Author URI:
Template: twentytwelve
Version:
*/
@import url("../twentytwelve/style.css");

(כדאי מאד להקפיד למלא גם את השדות הריקים!)

rtl.css
@import url("../twentytwelve/rtl.css");
לאחר יצירת שני הקבצים הנ"ל וטעינת התבנית החדשה שיצרנו, היא אמורה להיראות זהה לתבנית twentytwelve. אם זה לא עובד טוב, כדאי לוודא כי התבנית המקורית אכן יושבת במיקום /wordpress/wp-content/themes/twentytwelve/. מכאן אתם רשאים לעצב את התבנית האישית שלכם כיד הדמיון הטובה עליכם.

כפי שניתן לראות, העברתי את האתר האישי שלי לתבנית החדשה לפני מספר ימים. התבנית היא TwentyTwelve עם מספר שינויים קלים:

  • טעינת גופן Gladia של מיזם קולמוס באמצעות @font-face שנותן לכותרות באתר מראה מרובע ועתידני.
  • הוספת צלליות לכותרות ולתפריטים באמצעות text-shadow ו־box-shadow.
  • הסרת כותרת המשנה והגדלת גופן הכותרת הראשית.
  • הגדרת עברית על התבנית TwentyTwelve. אני מקווה שמתחזקי השפה העברית של וורדפרס יראו לנכון לשלב חזרה את כל התיקונים שביצעתי.

על קוד פתוח ופרוייקטים מקבילים

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

בעולם הקוד הפתוח ידוע כי בזכות הקוד הפתוח פרוייקטים זוכים לחופש, וברגע שהמפתחים שלהם נעלמים או מתחילים להשמיע קולות אחרים אפשר פשוט להעתיק את כל הקוד ולהרים פרוייקט נפרד, שיתחיל בדיוק מאותה הנקודה, בתקווה לדרך טובה יותר.

הסביבה הגרפית של לינוקס, המוכרת לרבים בתור X, למשל, עברה בשנת 2004 שינוי רציני, כאשר פרוייקט Xorg הוקם כפיצול של XFree86, בשביל לאפשר לפרוייקט להתקדם בצורה שלדעת אנשים מסויימים מתאימה לו יותר. במקרה של X הצעד באמת התברר כנכון, וכיום קשה למצוא הפצות לינוקס עדכניות שכוללות את XFree86 ולא את Xorg.

לא על X רציתי לדבר הפעם, אלא על תוכנת קוד פתוח אחרת שלא דיברתי עליה כבר זמן רב – WordPress. לטובת מי שישן בשנתיים האחרונות, וורדפרס היא תוכנת בלוגים; אחת מהתוכנות הנפוצות בעולם בתחומה, אם לא הנפוצה ביותר.

וורדפרס נולדה בשנת 2003, והיא עצמה פיצול של מערכת שהייתה קיימת באותה תקופה בשם b2/cafelog. בעולם יש הזוקפים את ההצלחה של וורדפרס בשינויי רישוי שהחברה שמאחורי Moveable Type , המתחרה הגדולה של וורדפרס, שגרמו לשיעור נטישה גדול של אותה התוכנה לטובת וורדפרס. בארץ לא היו באותה התקופה הרבה בלוגים של Moveable Type, ולכן התופעה הזו לא הורגשה.

ההכרות שלי עם וורדפרס התחילה בסמוך לזמן בו היא התחילה לתפוס תאוצה. בארץ באותה תקופה היו אפס בלוגים מבוססי וורדפרס, ובבלוגים המקצועיים בחו"ל דובר רבות בשבחי WordPress, ועל הפשטות שלה. באותו הזמן תחזקתי מערכת Moveable Type פעילה, ומסיבות כאלה ואחרות החלטתי להעביר אותה למשהו אחר, וההחלטה נפלה לטובת וורדפרס.

מאחר ולא היה שום בלוג וורדפרס פעיל בארץ, נדרשתי ללמוד לעומק את התוכנה, ובהמשך אף סייעתי לאנשים אחרים להשתמש בה (פה אמורים להיות קישורים לאנשים אחרים, אבל אני לא בטוח שהם מעוניינים בחשיפה הזו). כחלק מהמאמץ הייתי שורץ בפורומים של wordpress.org, ואף הקמנו קבוצת לוקליזציה קטנה שם, וספקנו תרגום עברי למערכת בחסות האתר הרישמי.

כן, חשפתי פה פיסת היסטוריה עלומה. היה וורדפרס בעברית לפני שרן יניב הרטשטיין התחיל לתרגם את המערכת, ובאותה התקופה היו להערכתי כמה עשרות בלוגים פעילים דוברי עברית. הימים היו ימי וורדפרס 1, ופתאום נוצר מצב, לראשונה, שיש לנו שתי גירסאות נפרדות של וורדפרס בשפה העברית.

רציתי לשים כאן קישור להודעת השיחרור המקורית של רן, אבל מתברר שהוא עורך את אותה ההודעה במקום לשמור ארכיון. הודעת השיחרור של הגירסה האחרונה נמצאת כאן. שימו לב לתגובה של מגיבה מספר חמש, ואת הבקשות של מגיבים 7 ו־13 – התגובות הן השריד היחיד כנראה מהעריכות הקודמות של הדף.

מה נוצר לנו פה? שתי גירסאות שונות של התירגום; אחד מופץ דרך האתר הרישמי, ואחד שמופץ באופן עצמאי תחת השם hingus, ובהמשך תחת השם "וורדפרס בעברית". מה שרן לצערי לא הבין בזמן הוא שלא צריך להתחיל הכל מההתחלה בשביל לעשות משהו מתורגם, אם יושבים לאנשים הנכונים על הורידים ומשכנעים אותם להתאים את המוצר לצרכים המיוחדים שלנו, כדוברי עברית.

מאז ועד היום, רן מחזיק גירסה נפרדת של וורדפרס, ומאחר והיא איננה מופצת יחד עם הגירסה הרגילה, נוצרים לפעמים מצבים שהגירסה העברית שלו משוחררת זמן רב אחרי הגירסה הרגילה.

לעומת זאת, הגירסה האחרת של וורדפרס העברי התנהלה על התשתית של wordpress.org, ואולי הייתה נוצצת פחות ולא היוותה פולחן אישיות לאדם כלשהו, אבל היו לה גם יתרונות משלה. כל תהליכי התירגום שלה היו פתוחים, וכל שינוי שבוצע בתירגום השתקף מיידית בדפי וויקי ציבוריים, כך שמי שרצה וורדפרס חדש פשוט היה נכנס לשם ומוריד את קובץ התירגום המעודכן למחשב שלו. בלי שום קישורים נוספים שנדחפים לתוך הדפים, ואפילו אנשים ממדינות אחרות יכלו להיעזר בעבודה שבוצעה לצורך התירגום לעברית מבלי לנסות את מזלם באתרים שכתובים בשפות שהם אינם מבינים.

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

אני לא אומר שצריך לנהל פרוייקט תירגום רק באישור ובעידוד של צוות הפיתוח המקורי, אלא לעבוד איתם בשיתוף פעולה כלשהו. אחד מכללי האתיקה הבלתי כתובה של הקוד הפתוח אומר שאם לא תהיה נחמד למשתמשים שלך, יפסיקו להשתמש בתוכנה שלך, או שהציבור יקח ממך את השליטה על פיתוח המוצר (כלומר יפצל את הקוד וינתק ממך מגע). בארץ ניתן לראות כמות נכבדה של פרוייקטים שמתנהלים בצורה נפרדת לחלוטין מהפרוייקט המקורי, ולכן במקרים כאלה המוצר העברי יהיה נחות יותר מאשר המוצר המקורי, ולעיתים כלל לא יהיה קשור אליו.

אני לא מפנה אצבע מאשימה על פרוייקטים מסויימים, אבל למיטב ידעתי הדבר נפוץ במיוחד בפרוייקטים של מערכות מבוססות רשת, בהן המתרגמים לא בהכרח מעורים בתעשיית הקוד הפתוח בארץ, ואינם מכירים את כל ההשלכות והדרישות של הקוד הפתוח.

גם פרוייקטים מקומיים שמתנהלים בנפרד מפרוייקט האב יכולים להתקיים. מוזילה ישראל, למשל, אינו אגף בתוך mozilla.org, אבל קיים קשר רציף בין הגופים. הקבוצה הישראלית של מוזילה ישראל מתעסקת גם בתרגום שמופיע ב־mozilla.org, אבל מעולם לא נעשה צעד כלשהו שלנו שלא היה מקובל על הגוף הראשי, ולכן לא ניתן לראות בשני הגופים הללו כגופים שאינם קשורים זה לזה באופן ישיר. במקרה של וורדפרס זה שונה, ואין אפשרות עד היום לקבל תמיכה מסודרת בעברית בגירסה הרגילה של התוכנה.

תוכנה אחרת שמתבססת על וורדפרס היא WordPress Mu. וורדפרס מו היא פיצול רישמי של וורדפרס שמיועד לאנשים שרוצים מערכת לניהול בלוגים, ומוכרת בתור המערכת שמפעילה את אתר הבלוגים wordpress.com ובארץ את blogli.co.il.

בלוגלי פתח את שעריו לפני כשנה, ומנוהל על־ידי חנית כהן, תום סלע ואלעד זסלמוס. יאמר לזכותם כי האתר מצליח לתת פייט טוב לאתרים גדולים ממנו בהרבה, כגון ישראבלוג והבלוגיה של תפוז.

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

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

אתמול, לרגל חגיגות חודש לשחרור של וורדפרס מו העברית באתר myblogia.co.il, נזכרו האנשים של בלוגלי שגם הם רוצים להיות קוד פתוח, ושחררו את הגירסה שלהם למערכת. שמעתם נכון, עכשיו יש לנו שני פרוייקטים שתירגמו בדיוק את אותה המערכת, ויש לנו מערכת שפועלת עם שני תרגומים שונים.

כשאתם בוחרים לעבוד על מוצר קוד פתוח כלשהו, בבקשה תבדקו שאין אף־אחד שכבר עשה את העבודה לפניכם. אין שום טעם לנהל בנפרד שני פרוייקטים שנועדו לאותה מטרה. במרבית המיקרים הצוות הקיים ישמח לעוד ידיים עובדות, ובמידה ומדובר בפרוייקט מוזנח, יכול מאד להיות שהמפתח שלו נטש אותו כתוצאה משיקולים כלשהם, והוא ירצה להעביר את המושכות לאדם שיוכל להמשיך לפתח ולתחזק את הפרוייקט.

תצוגה מקדימה של ערכות נושא בוורדפרס

משתמשי וורדפרס רבים מכירים את התופעה – מצאנו ערכת נושא מעניינת, אך כדי לצפות בה אנחנו צריכים להפעיל אותה, ובכך לגרום לכל גולשי האתר לצפות בערכת הנושא שבדקנו. הפתרונות לכך רבים ומגוונים, כאשר הפתרון הפשוט ביותר הוא להריץ עותק נפרד של וורדפרס בשרת ולבצע את כל העבודות עליו, אלא שלעתים פתרון זה לא בא בחשבון מאחר והוא נותן יכולות צפייה בעיצוב בלבד בלי שהמאמרים עצמם יופיעו בו, דורש התקנה נפרדת (פעולה שאיננה טריויאלית עבור כלל המשתמשים וכו'), כמו גם משאבי שרת נוספים.לפני כשבוע שאלתי בקבוצת הדיון העברית של וורדפרס על הפעלת תכונה כזו ב־Wordpress, ולפי התגובות הרבות שקיבלתי (אפס במספר), כנראה אף־אחד לא משתמש בפתרון כזה או מודע לו, והחלטתי לנסות את מזלי בחיפוש אחר תוסף מתאים לוורדפרס.

מעבר לתוספי החלפת ערכת הנושא ברמת כלל המשתמשים, פתרון שאינני מעוניין בו מאחר ואני מעוניין בפתרון שיאפשר הפעלת ערכות נושא אלו למשתמשים מורשים בלבד, מצאתי תוסף בשם Admin Theme Preview, שמאפשר בדיוק את מה שחיפשתי.

התוסף Admin Theme Preview מוסיפה למנהל האתר יכולת צפיה בכל ערכת נושא שהוא יבחר, ללא צורך בהפעלתה עבור כלל המשתמשים. בצורה כזו מנהל האתר יכול לבחון את ערכת הנושא על־פני מבחר של מספר דפדפנים ורזולוציות, כאשר גולשי האתר הרגילים כלל אינם חשים בזאת. דבר זה פותר את הבעיות של "הבזקי ערכות נושא" למספר שניות, שקיימים בבלוגים מסוימים בארץ.

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

פאנל ניהול התצוגה המקדימה של ערכות הנושא
פאנל ניהול התצוגה המקדימה של ערכות הנושא

סרגל החלפת ערכות הנושא, כפי שהוא מופיע בתצוגת הבלוג לאדמין (אופציונלי)

סרגל החלפת ערכות הנושא, כפי שהוא מופיע בתצוגת הבלוג לאדמין (אופציונלי)

תצוגת ערכת נושא חלופית באתר, כאשר רק משתמשים מורשים יכולים לצפות בה.

תצוגת ערכת נושא חלופית באתר, כאשר רק משתמשים מורשים יכולים לצפות בה.

פוסט זה מוקדש לכל אלו מאיתנו שבודקים ערכות נושא על בסיס יומיומי באתר חי. 🙂