הבעיה הלא מדוברת של שורטקודים

נכתב על ידי

ב

The-Unspoken-Problem-of-Shortcodes

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

אם אינכם יודעים מהם שורטקודים ואיך הם נראים, מדובר בטקסטים ארכאיים דמויי קוד העטופים בסוגריים מרובעים. הם נראים בערך כך:

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

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

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

אז מה הבעיה כאן? זה נשמע פשוט מספיק, פשוט מזינים טקסט קצר עם סוגריים וזהו.

וכאן נכנס לתמונה ה-Shortcode API..

שפע של שורטקודים

ה-Shortcode API פותח את היצירה של שורטקודים בפני מפתחים. הודות לכך, מפתחים יכולים להוסיף שורטקודים משלהם בתוך התוספים שלהם.

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

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

הבעיה היא שאין אזור מרכזי שבו תוכלו למצוא את כל השורטקודים הזמינים באתר שלכם וכיצד להשתמש בהם.

יש המנסים לפתור את הבעיה

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

Screen-Shot-2016-06-22-at-11.27.09-AM

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

Screen-Shot-2016-06-22-at-11.28.54-AM

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

Screen-Shot-2016-06-22-at-11.22.41-AM

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

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

הפתרון האידיאלי

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

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

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

ההסתייגות

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

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

ה-Shortcode API אינו מספק שום תשתית להוספת תיאורי שורטקודים, המרת סוגי מאפיינים (type casting) או תיאורי מאפיינים. ואלא אם כן וורדפרס עצמה תוסיף אזור מרכזי לגישה לשורטקודים, אני בספק אם תשתית כזו תיווצר.

סיכום

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

חלופה

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

אנחנו כאן ב-Page Builder Sandwich יוצרים משהו שבתקווה יוכל לפתור את חידת השורטקודים הזו. הירשמו לניוזלטר שלנו למטה כדי לקבל עדכונים על ההתקדמות שלנו.