דף הבית » טריקים וטיפים

היררכיית הקבצים של וורדפרס 3.1

21 בינואר 2011 | מאת רמי | 2 תגובות | תגיות: , ,

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

השינויים בגרסה 3.1

קובץ לתכנים מותאמים אישית

בגרסה 3.0 התווספה למערכת האפשרות ליצור תכנים מותאמים אישית (Custum Post Types), למשל תכנים מסוג "מוצר" או "סרט". כדי להציג את אותו המוצר או הסרט, עשינו שימוש בקובץ חדש בשם single-{{post_type}}.php שאיפשר לנו להציג את אותם התכנים המותאמים אישית. זהו כלי חזק הנמצא בשימוש של אתרים המשתמשים בוורדפרס כ-CMS, הוא מאפשר לעצב באופן שונה סוגי תכנים שונים.

עמודי תוכן לתכנים מותאמים אישית:

  • single-{{post_type}}.php – החל מגרסה 3.0
  • single.php
  • index.php

הבעיה שהתגלתה בהמשך היא שלא היה קובץ בהיררכיית הקבצים שהציג "רק" את הפוסטים מהסוג המסוים שיצרנו, כלומר היה קובץ המציג את התוכן של אותו מוצר/סרט אבל לא היה קובץ שמציג ארכיון של כל המוצרים/הסרטים. כדי לפתור בעיה זו הוסיפו בגרסה 3.1 את הקובץ archive-{{post_type}}.php שבו נוכל להציג את הארכיון המלא של התכנים המותאמים אישית (בדומה לעמוד טקסונומיה). אגב, אם אין עמוד כזה, המערכת תחפש את הקובץ archive.php ותציג את התכנים המותאמים אישית שם, זה משהו שלא היה בגרסה הקודמת.

עמודי ארכיון של תכנים מותאמים אישית:

  • archive-{{post_type}}.php– החל מגרסה 3.1
  • archive.php
  • index.php

פילטרים לשינוי היררכיית הקבצים

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

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

המבנה החדש

היררכיה קבצים - וורדפרס 3.1

היררכיה קבצים - וורדפרס 3.1

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

דפי תוכן

  • single-{{post_type}}.php – החל מגרסה 3.0
  • single.php
  • index.php

עמודים

  • תבנית עמוד
  • page-{{slug}}.php – החל מגרסה 2.9
  • page-{{id}}.php – החל מגרסה 2.9
  • page.php
  • index.php

ארכיון תכנים מותאמים אישית

  • archive-{{post_type}}.php – החל מגרסה 3.1
  • archive.php
  • index.php

ארכיון קטגוריות

  • category-{{slug}}.php – החל מגרסה 2.9
  • category-{{id}}.php
  • category.php
  • archive.php
  • index.php

ארכיון תגיות

  • tag-{{slug}}.php – החל מגרסה 2.3
  • tag-{{id}}.php – החל מגרסה 2.9
  • tag.php – החל מגרסה 2.3
  • archive.php
  • index.php

ארכיון טקסונומיה מותאמת אישית

  • taxonomy-{{taxonomy}}-{{term}}.php – החל מגרסה 3.0
  • taxonomy-{{taxonomy}}.php – החל מגרסה 3.0
  • taxonomy.php – החל מגרסה 3.0
  • archive.php
  • index.php

משתמשים

  • author-{{nicename}}.php – החל מגרסה 3.0
  • author-{{id}}.php- החל מגרסה 3.0
  • author.php
  • archive.php
  • index.php

מאת רמי

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

2 תגובות »

  • Ariel כותב :

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

    רק אני חושב שיש שגיאת כתיב קטנה בתיעוד.
    במקום author-{{nic-e-name}}.php
    צריך להיות author-{{nic-k-name}}.php

    תודה רבה

  • רמי כותב :

    אריאל,
    זו לא שגיאת כתיב, זה מבוסס על השדה user_nicename במסד הנתונים.
    ראה http://codex.wordpress.org/Database_Description#Table:_wp_users

הוסף תגובה !

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

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