כדי שוורדפרס בעברית יעבוד כמו שצריך, צריכים להתקיים שלושה דברים: שפת האתר מוגדרת לעברית, התבנית תומכת בכתיבה מימין לשמאל (RTL), והתרגומים של הליבה, התבנית והתוספים מעודכנים. כשאחד מהם חסר, רואים ממשק חצי באנגלית, טקסט שמיושר לשמאל, או תפריטים שנשברו.
הבשורה הטובה היא שרוב הבעיות של וורדפרס בעברית מגיעות מכמה מקורות קבועים, ואפשר לבדוק אותם לפי הסדר. סידרתי אותם כאן מהבדיקה הקלה אל הכבדה, ולכל אחד כתבתי איך מזהים את הבעיה ואיך מתקנים.
הטבלה מסכמת מה רואים ואיפה לחפש:
| מה רואים | איפה לחפש |
|---|---|
| ממשק הניהול באנגלית, או שהוא בעברית אצלך ובאנגלית אצל משתמש אחר, או שהתאריכים והלוח מוצגים בצורה לא מוכרת | הגדרות השפה: Settings > General ו-Users > Profile |
| שפת האתר עברית, אבל חלק מהמסכים, כפתורים בתוסף מסוים או טקסטים בתבנית נשארו באנגלית | מסך העדכונים: Dashboard > Updates |
| הטקסט בעברית, אבל התפריט, הסרגל הצדדי והיישור נראים כמו באתר אנגלי | תגית <html> בקוד המקור והקובץ rtl.css בתבנית |
| כתובת של עמוד בעברית מועתקת כרצף ארוך של תווים שמתחילים ב-%D7 | זו לא תקלה. בודקים רק מה קורה כשמשנים כתובות |
| עמוד לבן או ההודעה "There has been a critical error on this website" | מייל Recovery Mode, הקובץ wp-content/debug.log ותיקיית התוספים |
לפני הכול: גיבוי מלא
חלק מהתיקונים כאן נוגעים בקבצי התבנית, בקובץ wp-config.php ובכתובות של עמודים, ולכן לפני כל שינוי צריך גיבוי מלא של האתר, גם של הקבצים וגם של מסד הנתונים. אם חברת האחסון מציעה סביבת staging, עדיף לעשות את הבדיקות הכבדות שם. גם וורדפרס עצמה מזכירה במסך העדכונים לגבות את מסד הנתונים והקבצים לפני שדרוג.
הגדרות השפה של וורדפרס בעברית
הבעיה נראית כך: ממשק הניהול באנגלית, או שהוא בעברית אצלך ובאנגלית אצל משתמש אחר, או שהתאריכים והלוח מוצגים בצורה לא מוכרת. כך מתקנים:
- נכנסים ל-Settings > General ובוחרים בשדה Site Language את עברית. לפי התיעוד של וורדפרס, זו שפת לוח הבקרה של האתר.
- באותו מסך, בשדה Timezone (אזור זמן), בוחרים עיר שנמצאת באזור הזמן שלך, ובודקים שהשעה המקומית שמוצגת אחרי השמירה נכונה.
- בשדה Week Starts On (בממשק העברי: היום הראשון בשבוע) ברירת המחדל היא Monday. אם אתה רוצה שהלוח יתחיל ביום ראשון, בוחרים Sunday.
- לוחצים Save Changes.
יש הבדל בין שפת האתר לשפת המשתמש. ב-Users > Profile (בממשק העברי: משתמשים > פרופיל אישי) יש שדה Language (שפה), ולפי התיעוד הוא משנה רק את שפת ממשק הניהול של אותו משתמש, בלי להשפיע על מה שגולשים רואים. לכן אם משתמש אחד רואה ניהול באנגלית, כדאי לבדוק קודם את הפרופיל שלו.
וכשכבר נמצאים במסך Settings > General, כדאי לבדוק גם את השדה Administration Email Address. לפי התיעוד של וורדפרס, לכתובת הזו נשלחות בין השאר הודעות על Recovery Mode ועל שגיאות קריטיות. אם את האתר הקים מפתח או סוכנות, צריך לוודא שהכתובת שייכת לך ולא להם. כשמשנים אותה, וורדפרס שולח מייל אישור לכתובת החדשה, והיא נכנסת לתוקף רק אחרי לחיצה על הקישור שבו.
תרגומים שלא עודכנו
כאן שפת האתר עברית, אבל חלק מהמסכים, כפתורים בתוסף מסוים או טקסטים בתבנית נשארו באנגלית.
הפתרון נמצא במסך העדכונים (Dashboard > Updates, בממשק העברי: לוח בקרה > שדרוגים). לפי התיעוד של וורדפרס, באתר ששפתו שונה מאנגלית (ארצות הברית) המסך הזה מאפשר להתקין גם עדכוני תרגום. אם יש תרגומים חדשים, תופיע ההודעה "תרגומים חדשים זמינים." ולידה כפתור "עדכון קבצי תרגום". אם הכול מעודכן, תופיע ההודעה "כל קבצי התרגום מעודכנים."
התרגומים של הליבה נשמרים בתיקייה wp-content/languages, והתרגומים של תוספים ותבניות נשמרים בתתי תיקיות שלה. את התרגומים עצמם כותבת הקהילה, דרך כלי התרגום המקוון translate.wordpress.org.
אם אחרי העדכון תוסף או תבנית עדיין באנגלית, ייתכן שעדיין אין להם תרגום עברי מלא. במקרה כזה אפשר לתרגם את המחרוזות בעצמך מתוך ממשק הניהול, בעזרת תוסף כמו Loco Translate, שמאפשר לערוך קבצי תרגום של וורדפרס ישירות בדפדפן.
האתר בעברית אבל מיושר משמאל לימין
זו הבעיה הנפוצה ביותר באתר וורדפרס בעברית: הטקסט בעברית, אבל התפריט, הסרגל הצדדי והיישור נראים כמו באתר אנגלי.
כדי לבדוק, פותחים בדפדפן את קוד המקור של העמוד ומסתכלים על תגית <html>. באתר שמוגדר לעברית היא אמורה לכלול dir="rtl". את התכונה הזו מוסיפה הפונקציה language_attributes(), שלפי התיעוד של וורדפרס בונה את מאפייני כיוון הטקסט והשפה של העמוד ומיועדת לתגית <html>.
- אם
dir="rtl"לא מופיע: התבנית לא קוראת ל-language_attributes()בקובץ header.php. בתבנית קלאסית, השורה הנכונה בראש header.php היא<html <?php language_attributes(); ?>>. - אם
dir="rtl"מופיע והעיצוב עדיין הפוך: לתבנית אין עיצוב מימין לשמאל. לפי מדריך התבניות של וורדפרס, הקובץ rtl.css נטען אוטומטית כששפת האתר נכתבת מימין לשמאל. אם הקובץ לא קיים בתבנית, אין מה לטעון.
הפתרון היציב הוא תבנית שתומכת ב-RTL. אם אתה חייב להישאר עם התבנית הנוכחית, אפשר ליצור תבנית בת ולשים בה קובץ rtl.css שמתקן את הכיוונים. בקוד PHP אפשר לבדוק את הכיוון עם הפונקציה is_rtl(), שקובעת אם השפה הנוכחית נכתבת מימין לשמאל. את קבצי התבנית הראשית עצמה לא כדאי לערוך, כי מסך העדכונים של וורדפרס מזהיר ששינויים בקבצי תבנית יימחקו בעדכון, וממליץ על תבנית בת.
אחרי כל שינוי בתבנית מנקים את המטמון של תוסף המטמון ושל השרת, ובודקים את האתר בחלון גלישה בסתר ובמובייל. באתר וורדפרס בעברית כדאי לעבור במיוחד על תפריט המובייל, הסרגל הצדדי, הטפסים והפוטר, ולא רק על עמוד הבית. ותוך כדי, שווה לבדוק גם את הגופן: לא כל גוגל פונט תומך בעברית, וגופן שלא תומך פשוט מוחלף בגופן אחר, בלי שום אזהרה.
כתובות בעברית שנראות כמו ג'יבריש
מעתיקים כתובת של עמוד בעברית ומקבלים רצף ארוך של תווים שמתחילים ב-%D7.
זו לא תקלה, אלא אותה כתובת בקידוד אחוזים. לפי ההנחיות של גוגל למבנה כתובות, תווים שאינם בטווח ASCII צריכים לעבור קידוד אחוזים, וכשמקשרים לעמודים באתר משתמשים בקידוד הזה בתכונת href לפי הצורך.
מה שכן צריך לבדוק הוא מה קורה כשמשנים כתובות. אם אתה שוקל לשנות כתובות של עמודים קיימים, מעברית לאנגלית או להפך, זה שינוי כתובת לכל דבר. גוגל ממליצה להשתמש בהפניה קבועה בצד השרת כשמשנים כתובת של עמוד שמופיע בתוצאות החיפוש, ובלי הפניה, קישורים ישנים יובילו לעמוד שגיאה. אם העמודים כבר מקבלים תנועה מגוגל, כדאי לקרוא קודם למה האתר שלי לא מופיע בגוגל. חלק מבעלי האתרים הולכים צעד נוסף ובוחרים גם רישום דומיין בעברית, וכדאי להכיר את השיקולים לפני שקופצים לזה.
האתר נשבר אחרי מעבר לעברית או אחרי עדכון
לפעמים החלפת שפה, עדכון תרגומים או התקנת תבנית עברית חדשה מגיעים יחד עם עדכון של תוסף, והאתר מציג עמוד לבן או את ההודעה "There has been a critical error on this website". אם קיבלת דווקא מסך לבן בלי שום הודעה, כתבתי על זה מדריך נפרד: White Screen of Death WordPress.
מייל Recovery Mode: כשוורדפרס מזהה שגיאה קריטית, הוא שולח לכתובת המייל של מנהל האתר קישור כניסה במצב Recovery Mode. במצב הזה התוסף או התבנית הבעייתיים מושהים רק בשביל ההתחברות שלך, ולוח הבקרה מצביע על הרכיב שנכשל. כדאי לחפש את המייל הזה גם בספאם, ולוודא ב-Settings > General שכתובת המייל של המנהל היא כתובת שיש לך גישה אליה.
לוג שגיאות: פותחים את wp-config.php ומוסיפים לפני השורה /* That's all, stop editing! Happy publishing. */ (בהתקנות ישנות כתוב בסופה Happy blogging) את השורות:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );אחר כך טוענים שוב את העמוד שנשבר ופותחים את wp-content/debug.log. בסיום מחזירים את WP_DEBUG ל-false.
השבתת תוסף בלי ממשק ניהול: דרך FTP או מנהל הקבצים של האחסון, משנים את שם התיקייה של התוסף החשוד בתוך wp-content/plugins, ווורדפרס יפסיק לטעון אותו. זו גם הדרך שמתוארת במדריך הרשמי של וורדפרס למצב Recovery Mode.
אם השגיאה מצביעה על אי התאמה לגרסת PHP, כדאי לבדוק בלוח הבקרה של האחסון על איזו גרסה האתר רץ, ואם debug.log ריק, לבקש מחברת האחסון את לוג השגיאות של השרת.
מתי לעצור ולקרוא למומחה
חלק מהבעיות של וורדפרס בעברית נפתרות בשינוי הגדרה אחת. אחרות דורשות לכתוב CSS מימין לשמאל לתבנית שלמה, או לתכנן מחדש כתובות של אתר שכבר מקבל תנועה. כדאי לעצור ולקבל עזרה אם:
- התבנית לא תומכת ב-RTL ואתה צריך לבנות לה עיצוב מימין לשמאל מאפס.
- אתה שוקל לשנות כתובות של עמודים שכבר מופיעים בגוגל.
- האתר מציג שגיאה קריטית ואין לך גישת FTP או גיבוי עדכני.
- אתה לא בטוח אם השינוי שאתה עומד לעשות נוגע בתבנית הראשית או בתבנית בת.
- עברת על כל השלבים והאתר עדיין לא מוצג נכון.
אם עברת על השלבים והאתר עדיין לא נראה כמו שצריך בעברית, אני מטפל בזה. השאר פרטים כאן ונבדוק יחד מה שובר את התצוגה.
