היררכיית הקבצים בתבנית וורדפרס
וורדפרס היא מערכת ניהול תוכן שמאפשרת לכם גמישות רבה בתחומים רבים. חלק מהגמישות שלה קשור באופן בו היא מטפלת באזורים השונים של האתר שלכם.
כשאתם מורידים ערכות עיצוב לוורדרפס, מה שנקרא תבניות וורדפרס, אתם מורידים למעשה סט של קבצים, שמדברים אחד עם השני (מלבד הדיבור שיש להם עם השרת ובסיס הנתונים). סט הקבצים הזה מכיל מספר קבצי 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 ייטען אל העמודים השונים של האתר באמצעות הפונקציה של וורדפרס שתיכתב בראש כל עמוד מעמודי ה"אינדקס" השונים.
1 | <?php get_header(); ?> |
footer.php
בדומה לקובץ header.php, הקובץ footer.php אחראי על מה שיימצא באופן קבוע בתחתית דף האתר (כמו למשל בר ניווט תחתון, לינקים שונים, או כל איזור אחר שהוא. בנוסף הוא ישמש גם להטמעת סקריפטים שונים של סטטיסטיקות, או כל דבר אחר שהוא שנרצה שירוץ בתחתית העמוד, וכן סגירת כל האלמנטים של עמוד ה-html.
ליבת האתר – index.php וכל השאר
למעשה, בניגוד למה שחושבים, שזהו הקובץ הראשון שנטען בתבנית כשעולה עמוד הבית, זהו למעשה הקובץ האחרון שעולה. לוורדפרס יש היררכיית עמודים בתבנית, והמערכת תחפש כל אחד מהם בהתאם למיקום של הגולש באתר. המערכת תחפש את הקובץ המתאים בהתאם לסדר קבוע ומוגדר מראש, כאשר הקובץ index.php הוא זה שיוצג רק אם לא קיים במקומו קובץ שמקומו גבוה יותר בהיררכיה. למעשה, הקובץ index.php הוא הכי מוכר דווקא בגלל ההיררכיה הנמוכה שלו.
מה זה אומר היררכיה נמוכה? זה אומר, למשל, שאם אין קובץ תבנית ספציפי המיועד לעמוד הבית, אז דף הבית יוצג בעזרת index.php. זה אומר, למשל, שאם לא קיים קובץ תבנית ייחודי עבור מבנה של קטגוריה, הקובץ index.php יציג גם את הקטגוריות על אותה התבנית. כך גם לכל אזור באתר ולכן דרך תצוגת תוכן.
למעשה, בכל התבניות שתשתמשו בהן, יהיה קיים קובץ index.php מאחר שישנם אזורים שונים שאין צורך לייצר עבורם תצורות נפרדות, ושימוש בקובץ זה יהיה מספק. סוגי התכנים האפשריים – עמודי קטגוריות באופן כללי, עמוד קטגוריה מסויימת, דפים סטטיים, תבנית קבוצת דפים סטטיים, דף בודד, תבנית של פוסט, תבנית לתוצאות חיפוש, תבנית תצוגה התוכן לפי ארכיון/לפי שנים /לפי חודשים, תצוגת התוכן לפי תגיות וכדו'. כל סוגי העמודים הללו יכולים לכלול קבצים ספציפיים משל עצמם, ואם זה לא קיים הם ייטענו בעזרת הקובץ index.php.
היררכית קבצי תבנית וורדפרס
להלן רשימה המסבירה על מה אחראי כל קובץ בתבנית וורדפרס, עבור כל סוג של תוכן ולפי היררכיה. הנתונים לפי הקודקס של וורדפרס:
תצוגת עמוד הבית
- home.php – אם קיים קובץ זה, הוא יהיה אחראי על עמוד הבית.
- index.php
תצוגת פוסט יחיד
- single.php
- index.php
תצוגת עמודים
- תבנית העמוד - בתור אפשרות ראשונה, המערכת תחפש את הקובץ של האחראי לתבנית העמוד המשויך לעמוד במערכת הניהול. כדי לייצר תבנית עמוד סטטי, לרוב נשכפל את הקובץ page.php וניתן לו שם כלשהו. נבצע את השינויים הדרושים וכן נוסיף בראש הקובץ את ההערה הבאה –
1
2
3
4<?php
/*
Template Name: some name
*/ ?> - page-slug.php – זהו הקובץ השני בהיררכיית הדפים , אותו המערכת תחפש בבואה לטעון את העמוד. אם הסלאג של העמוד הוא למשל – about, המערכת תחפש את העמוד – page-about.php ותציג אותו עבור העמוד. (אופציה זו תהיה קיימת רק החל מגרסה 2.9)
- page-id.php – אם אין תבנית עמוד ואין slug, וורדפרס תחפש את העמוד לפי מספרו. למשל – page-6.php, עבור עמוד מס' 6 (אופציה זו תהיה קיימת גם היא רק מגרסה 2.9)
- page.php – עבור כל שאר העמודים
- index.php – אם לא קיים הקובץ page.php, עמוד סטטי ייטען גם הוא ע"י index.php.
תצוגת קטגוריות
- category-slug.php – אם הסלאג של הקטגוריה הוא articles, וורדפרס תחפש את הקובץ category-articles.php כאופציה ראשונה, כשהגולש ייגש לעמוד הקטגוריה (אופציה זו תתאפשר החל מוורדרפס 2.9)
- category-id.php – עפ"י מספר הקטגוריה, למשל – category-4.php.
- category.php – עבור שאר הקטגוריות.
- archive.php – אם לא יימצא בערכה הקובץ category.php.
- index.php
תצוגת תגיות
אפשר ליצור תבנית עמוד שונה לתצוגת התגיות באתר, ע"י שימוש בקבצים המתאימים לתגיות –
- tag-slug.php – למשל – tag-internet.php, אם הסלאג של התגית הוא internet
- tag-id.php – לפי מספר התגית
- tag.php
- archive.php
- index.php
תבנית עמודי תצוגת כותבים בבלוג
- author.php
- archive.php
- index.php
תבנית עמודי ארכיון לפי תאריך
- date.php
- archive.php
- index.php
תבנית של עמודי תוצאות חיפוש
- search.php
- index.php
עמודי 404 (עמודי "לא נמצא")
- 404.php
- index.php
תבנית תצוגת קבצים מצורפים
- MIME_type.php – (image.php, video.php, audio.php, application.php)
- attachment.php
- single.php
- index.php
21.3.10 – עדכון עבור וורדפרס 3.0
היררכיית קבצי תבנית וורדפרס ממשיכה להתפתח וכעת נוספה גם אפשרות לתבנית עמוד מחבר לפי הפירוט הזה:
author-{nicename}.php – אם למשל שם התצוגה של המשתמש הוא yuki, אז התבנית שתיטען (במידה שקיימת) תהיה – author-yuki.php
author-{id}.php – אותו הדבר, רק הפעם זה לפי מספר מזהה של הכותב.
אם קבצים אלה לא קיימים, ייטענו הקבצים הבאים לפי ההיררכייה הקיימת –
author.php ולאחרי כן archive.php ו-index.php
סוגי תוכן מותאמים אישית זוכים גם הם לתבניות משלהם. פוסט יחיד ששייך לסוג תוכן מסוים, יקבל את ההיררכיה הבאה –
- single-{post_type}.php – אם למשל הפוסט הוא מסוג products, אז הקובץ שייטען (אם הוא קיים) יהיה – single-products.php
- single.php
- index.php
מה עוד חדש בוורדפרס 3.0? חידושים וורדפרס 3.0
עוד על היררכיית קבצי התבנית אפשר לקרוא בעמוד בקודקס של וורדפרס
10 תגובות »
פיד RSS לתגובות בפוסט | טראקבק








המון תודה ! אחלה מדריך.
עזר לי מאוד.
תודה. ברור ונהיר. עזר לי להבין את המבנה ויהיה נוח להשתמש בגרף בפעם הבאה שאצטרך לעשות שינויים קטנים בתבנית, ולהבין את ההשלכה שלהם.
תודה לכם על הפידבקים
, שמח שזה מסייע לכם..
כל הכבוד גבר
אכן פוסט מצויין שתכננתי גם לכתוב אותו…
פורסם לאחרונה אצל מתי.. If you register your site for free at
עודכנו בסוף הפוסט מספר תוספות הצפויות בהיררכיית הקבצים בוורדרפס 3.0
תודה, בדיוק מה שהייתי צריך כדי לעשות קצת סדר.