דף הבית » חדשות ועדכונים

שדרוג היררכיית הקבצים בוורדפרס 4.5

15 במרץ 2016 | מאת רמי | 3 תגובות | תגיות: , ,

בגרסה הקרובה של וורדפרס, גרסה 4.5, אנו צפויים לעוד שינויים בהיררכיית קבצי התבנית של וורדפרס. והפעם, תמיכה בעיצוב התכנים המוטמעים מהאתר שלנו באתרים חיצוניים, באמצעות קובץ חדש embed-{post-type}-{post_format}.php.

מבנה תבנית של התכנים המוטמעים

מבנה תבנית של התכנים המוטמעים

קצת רקע

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

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

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

צילום מסך של הפוסט המוטמע

צילום מסך של הפוסט המוטמע

הפתרון לבעיה

התוצאה הייתה קובץ חדש בהיירכיית הקבצים של התבנית. קובץ בשם embed.php.

בתבניות בהן אין קובץ כזה (בערך 100% מכל התבניות בעולם), יעשה שימוש בקובץ ברירת המחדל wp-includes/theme-compat/embed.php. למי שלא מכיר את הספריה theme-compat, זו ספרייה שמכילה קבצים שבהם קבצים הכרחיים לתבנית, למקרה ולתבנית אין את הקבצים הללו. בדרך כלל זה משמש לטעון את קובץ התבנית של התגובות כי בהרבה תבניות לא מעצבים תגובות. אגב, מקור השם הוא theme backwards compatibility.

היררכיית הקבצים החדשה

תצוגת הטמעות בוורדפרס תפעל לפי ההיררכיה הבאה:

  • embed-{post-type}-{post_format}.php
  • embed-{post-type}.php
  • embed.php
  • wp-includes/theme-compat/embed.php

אז ככה, בהתחלה ביקשו להוסיף רק את הקובץ embed.php, אבל אני ועוד כמה אנשים ביקשנו להוסיף תמיכה בסוגי תוכן מותאמים embed-{post-type}.php, כדי שניתן להוסיף עיצובים שונים לתכנים מוטמעים מסוגים שונים. אני בעיקר רציתי תמיכה ב-post-types בשביל לאפשר תמיכה בתכנים מסוג סניפטים ב-GenerateWP.com ועוד כמה סוגים מותאמים לאתרים של הלקוחות שלי. בהתחלה הייתה התנגדות מצד מפתחים בכירים, כי הם צידדו בתמיכה ב- embed-{post_format}.php, אבל בסוף נמצא שביל הזהב. (חלק מהדיון נמצא פה)

המשמעות למפתחים

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

ואני אתן דוגמא:

  • embed-post.php – שיציג את כותרת הפוסט, התמונה, התיאור ושדות נוספים.
  • embed-page.php – אותו העיצוב רק ללא התיאור וללא התמונה כי לעמודים אין את הרכיבים האלה. לכן במקום התמונה, ניתן להשתמש בלוגו האתר.
  • embed-snippet.php – הטמעה שתציג את את הקוד בלבד. ללא כותרת, ללא תיאור, ללא שום אלמנט, רק את התוכן של הקוד המוטמע.
  • embed-map.php – הטמעה של מפה בלבד. ללא שום אלמנט אחר שוורדפרס מוסיפה כי זה מיותר.
  • embed-video.php – הטמעה של הוידאו בלבד. ללא שום אלמנט אלא רק את נגן של הוידאו. כדי לאפשר לאתרים אחרים להטמיע סרטונים מהאתר שלי.
  • embed-presentation.php – זה תוכן מסוג פרזנטציה, לכן ההטמעה שלו תציג באתרים אחרים את הנגן שמציג את הפרזנטציה. ללא כל האלמנטים המובנים של וורדפרס.

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

שינויים קודמים בהיררכיית הקבצים

מאת רמי

אחראי על אתר וורדפרס בעברית ועל תרגום ושחרור גרסאות וורדפרס בעברית. מפתח ליבה, בכל גרסה החל מגרסה 2.8, מפתח מוביל בגרסה 4.4 ובגרסה 4.6. מספק שירותי פיתוח אתרים, פיתוח תוספי וורדפרס לסטרטאפים ופיתוח כלים למפתחי וורדפרס - GenerateWP.com.

3 תגובות »

  • איציק עגם כותב :

    רמי, יש בכתבה שלך הרבה אינפורמציה, עכשיו צריך גם לממש אותה 🙂
    תודה רבה!

  • חולי כותב :

    וגם לעכל אותה…

    תודה רמי!

  • רמי כותב :

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

הוסף תגובה !

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

תגיות HTML מורשות לשימוש:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>