23
בנוב
2009

היררכיית הקבצים בתבנית וורדפרס

מאת: מאור ברזני | תגובות: 17 | נושאים: וורדפרס
תגיות: , , , |

(עדכון אחרון: 25.2.11, מעודכן לפי ההיררכייה של  וורדפרס 3.1)

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

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

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

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

מבנה כללי של עמוד באתר –

header.php
index.php (if others does not exist, by hierarchy.)
footer.php

header.php

קובץ ה-header.php מחזיק בד"כ את כל האלמנטים ששיכיים לאלמנט ה- head של html, כמו למשל הפניות לקבצי css ו-js חיצוניים, התניות דפדפנים, קודי מטה, קודי אימות, כותרת דינמית לעמוד, תצורת לינקים קנונים וכדו', כמו גם את כל גם לרוב את כל מה שאמור להופיע בחלק העליון של האתר, שאמור לחזור בכל עמוד באתר – כמו בד"כ למשל הלוגו, תפריטי ניווט הרשמת משתמש או כל אלמנט אחר שהוא.

קובץ ה-header.php ייטען אל העמודים השונים של האתר באמצעות הפונקציה של וורדפרס שתיכתב בראש כל עמוד מעמודי ה"אינדקס" השונים.

[ccwn_php]
[/ccwn_php]

footer.php

בדומה לקובץ header.php, הקובץ footer.php אחראי על מה שיימצא באופן קבוע בתחתית דף האתר (כמו למשל בר ניווט תחתון, לינקים שונים, או כל איזור אחר שהוא. בנוסף הוא ישמש גם להטמעת סקריפטים שונים של סטטיסטיקות, או כל דבר אחר שהוא שנרצה שירוץ בתחתית העמוד, וכן סגירת כל האלמנטים של עמוד ה-html.

ליבת האתר – index.php וכל השאר

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

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

 

היררכיית קבצי תבנית בוורדפרס. התמונה מתוך הקודקס

היררכיית קבצי תבנית בוורדפרס. התמונה מתוך הקודקס.לחצו לגודל מלא

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

היררכית קבצי תבנית וורדפרס

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

תצוגת עמוד הבית

  1. home.php – אם קיים קובץ זה, הוא יהיה אחראי על עמוד הבית.
  2. index.php

תצוגת פוסט יחיד

  1. single.php
  2. index.php

תצוגת עמודים

  1. תבנית העמוד – בתור אפשרות ראשונה, המערכת תחפש את הקובץ של האחראי לתבנית העמוד המשויך לעמוד במערכת הניהול.  כדי לייצר תבנית עמוד סטטי, לרוב נשכפל את הקובץ page.php וניתן לו שם כלשהו. נבצע את השינויים הדרושים וכן נוסיף בראש הקובץ את ההערה הבאה –
    [ccwn_php]
    /*
    Template Name: some name
    */ ?>
    [/ccwn_php]
  2. page-slug.php – זהו הקובץ השני בהיררכיית הדפים , אותו המערכת תחפש בבואה לטעון את העמוד. אם הסלאג של העמוד הוא למשל – about, המערכת תחפש את העמוד – page-about.php ותציג אותו עבור העמוד. (אופציה זו תהיה קיימת רק החל מגרסה 2.9)
  3. page-id.php – אם אין תבנית עמוד ואין slug, וורדפרס תחפש את העמוד לפי מספרו. למשל – page-6.php, עבור עמוד מס' 6  (אופציה זו תהיה קיימת גם היא רק מגרסה 2.9)
  4. page.php – עבור כל שאר העמודים
  5. index.php – אם לא קיים הקובץ page.php, עמוד סטטי ייטען גם הוא ע"י index.php.

תצוגת קטגוריות

  1. category-slug.php – אם הסלאג של הקטגוריה הוא articles, וורדפרס תחפש את הקובץ category-articles.php כאופציה ראשונה, כשהגולש ייגש לעמוד הקטגוריה (אופציה זו תתאפשר החל מוורדרפס 2.9)
  2. category-id.phpעפ"י מספר הקטגוריה, למשל – category-4.php.
  3. category.php – עבור שאר הקטגוריות.
  4. archive.phpאם לא יימצא בערכה הקובץ category.php.
  5. index.php

תצוגת תגיות

אפשר ליצור תבנית עמוד שונה לתצוגת התגיות באתר, ע"י שימוש בקבצים המתאימים לתגיות  –

  1. tag-slug.php למשל – tag-internet.php, אם הסלאג של התגית הוא internet
  2. tag-id.php – לפי מספר התגית
  3. tag.php
  4. archive.php
  5. index.php

תבנית עמודי תצוגת כותבים בבלוג

  1. author.php
  2. archive.php
  3. index.php

תבנית עמודי ארכיון לפי תאריך

  1. date.php
  2. archive.php
  3. index.php

תבנית של עמודי תוצאות חיפוש

  1. search.php
  2. index.php

עמודי 404 (עמודי "לא נמצא")

  1. 404.php
  2. index.php

תבנית תצוגת קבצים מצורפים

  1. MIME_type.php – (image.php, video.php, audio.php, application.php)
  2. attachment.php
  3. single.php
  4. index.php

18.9.10, 21.3.10 – עדכונים עבור וורדפרס 3.0

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

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

היררכית תבנית וורדפרס - וורדפרס 3ניתן גם לצפות בקובץ זה בגודל מלא ברזולוציית דפוס  – > היררכיית תבנית וורדפרס

> הקובץ נלקח מתוך הספר Digging Into WordPress

תבנית סוגי תוכן מותאמים אישית

גם סוגי תוכן מותאמים (Custom Post Types) אישית זוכים לתבניות משלהם. פוסט יחיד ששייך לסוג תוכן מסוים מותאם אישית יקבל את ההיררכיה הבאה –

  1. single-{post_type}.php – אם למשל הפוסט הוא מסוג products, אז הקובץ שייטען (אם הוא קיים) יהיה – single-products.php
  2. single.php
  3. index.php

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

תבנית עבור סוגי מיונים (taxonomies) מותאמים אישית, ומונחים המשוייכים לטקסונומיה

  1. taxonomy-{taxonomy}-{term}.php – אם הטקסונומיה היא בשם bands והסלאג של המונח הוא למשל queen, אז וורדפרס תחפש את הקובץ taxonomy-bands-queen.php
  2. taxonomy-{taxonomy}.php – אם הטקסונומיה היא בשם bands, וורדפרס תחפש את הקובץ taxonomy-bands.php.
  3. taxonomy.php
  4. archive.php
  5. index.php

תבנית עמוד עבור עמודי כותב

  1. author-{nicename}.php – אם למשל שם התצוגה של המשתמש הוא yuki, אז התבנית שתיטען (במידה שקיימת) תהיה – author-yuki.php
  2. author-{id}.php – אותו הדבר, רק הפעם זה לפי מספר מזהה של הכותב.

אם קבצים אלה לא קיימים, ייטענו הקבצים הבאים לפי ההיררכייה הקיימת –

author.php ולאחרי כן archive.php ו-index.php

> מה עוד חדש בוורדפרס 3.0? חידושים וורדפרס 3.0

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

 

25.2.11 – עדכונים עבור וורדפרס 3.1

תבנית עמוד עבור ארכיוני פוסטים מותאמים אישית (Custm Post Types)

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

  1. archive-{post_type}.php – אם למשל מדובר בארכיון של פוסטים מסוג products, אז הקובץ שייטען (אם הוא קיים) עבור ארכיון הסוג יהיה – archive-products.php
  2. archive.php
  3. index.php

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

> מה עוד חדש בוורדפרס 3.1? פיצ'רים של וורדפרס 3.1

 


שתפו גם אחרים:
  • email
  • Print
  • RSS
  • Facebook
  • Twitter
  • LinkedIn
  • Google Bookmarks
  • Live
  • PDF
  • MySpace
  • del.icio.us
  • Digg
  • Technorati
  • Yahoo! Bookmarks
  • Yahoo! Buzz
  • Add to favorites

17 תגובות »

פיד RSS לתגובות בפוסט | טראקבק


הוסף תגובה ל מאור ברזני

CommentLuv badge

TechnoCraft - פתרונות אינטרנט


אֶקְסְפֶּרִימֶנְט דוֹט אֶפֶס - וורדפרס, תוכן, טכנולוגיה ועוד כמה דברים - מופעל באמצעות WordPress | פתרונות אינטרנט