בחלק זה בסדרת המאמרים נלמד מהו מנגנון התבניות של וורדפרס, איך ניתן לשלוט על נראות ומבנה כל אחד ואחד מעמודי האתר השונים, בין אם זה ארכיון, עמוד הבית או עמוד פוסט, ואיך ניתן לשלוט על עמודים ספציפיים על ידי יצירת קבצי תבנית ספציפיים או ע״י יצירת תבניות עמוד.
מנגנון התבניות
כאשר בונים תבנית בוורדפרס, ברוב המקרים ישנם עמודים אשר צריכים להיראות שונים, לצורך העניין, עמוד קטגוריה לא אמור להיראות כמו דף הבית או דף מאמר, לכן וורדפרס מאפשרת לכם לבנות כל סוג עמוד בעיצוב אחר או במבנה אחר על מנת לאפשר גמישות בעבודה. עם זאת, במידה ולא קיים קובץ לעמוד מסויים, תהיה נפילה אחורה (fallback) לעמוד תבנית ברמה נמוכה יותר, כאשר הרמה הנמוכה ביותר היא קובץ ה-index.php
של התבנית.
בתמונה הנ״ל ניתן לראות את ההיררכיה והסוגים השונים של קבצי התבנית של וורדפרס, גירסה חיה של זה ניתן לראות בקישור הבא – wphierarchy.com.
וורדפרס יודעת לטעון את הקובץ הרלוונטי לפי סוג העמוד, לדוגמא אם זה עמוד תוצאות חיפוש היא תנסה קודם לטעון את הקובץ search.php
, אך במידה והוא לא קיים היא תטען את הקובץ index.php
.
סוגי עמודים
וורדפרס מסווגת 6 סוגי עמודים עיקריים אשר לפיהם היא יודעת באיזה נתיב היא אמורה ללכת ולטעון את קובץ התבנית. ששת הסוגים הללו הם – עמוד אובייקט, עמוד ארכיון, עמוד הבית, עמוד מאמרים ראשי, עמוד 404 ולבסוף עמוד תוצאות החיפוש.
עמוד אובייקט
עמוד אובייקט הוא עמוד אשר מציג תוכן לגולש אשר הוגדר בוורדפרס כ-Post Type (לדוגמא פוסט או עמוד) או כ-Custom Post Type (לדוגמא, מוצר בווקומרס). כאשר נכנסים לעמוד פוסט לדוגמא וורדפרס תנסה לטעון קודם כל קובץ תבנית מיוחד (במידה והוגדר), במידהו לא קיים היא תנסה לטעון את הקובץ single-post.php
, במידה והוא לא קיים היא תנסה לטעון את single.php
, במידה והוא לא יהיה קיים היא תנסה לטעון את singular.php
, ולבסוף אם אלו לא קיימים היא תטען את index.php
.
עמוד ארכיון
עמוד ארכיון כשמו הוא, עמוד אשר מכיל אוסף של אובייקטים מאותו הסוג כאשר הם יהיו מלוקטים לפי מאפיין מסויים. עמוד ארכיון יכול להיות עמוד אשר מאגד אובייקטים לפי חודש או שנה, או לפי קטגוריה או תגית, או לפי כותב וכד׳. עמוד ארכיון יכול להיות אף עמוד אשר מאגד את כל האובייקטים מאותו הסוג, לדוגמא עמוד בלוג אשר מאגד את כל האובייקטים מסוג פוסט הינו עמוד ארכיון.
עמוד הבית
ברוב האתרים עמוד הבית הינו עמוד סטטי אשר מציג תוכן מסויים, לרוב הוא מעוצב ככה שהוא נראה כמו עמוד תוכן לכל דבר, אך הוא בעל מבנה יותר מורכב מעמוד תוכן רגיל. לעומת זאת באתרים מסוג בלוג לרוב עמוד הבית הוא ארכיון של פוסטים. כאשר עמוד הבית הינו עמוד סטטי וורדפרס תטען את הקובץ front-page.php
וכאשר מדובר בעמוד ראשי של המאמרים יטען הקובץ home.php
. במידה ואחד מהקבצים האלו לא קיימים תהיה נפילה לקובץ index.php
.
עמוד 404
כאשר הגולש מנסה לגשת לעמוד שלא קיים באתר, וורדפרס תטען את עמוד 404, אשר הוא עמוד וירטואלי אשר לא ניתן לערוך אותו דרך פאנל הניהול של וורדפרס והוא נשלט אך ורק דרך הקוד (למעט מקרים מיוחדים). כאשר למשתמש יוצג עמוד 404, וורדפרס תנסה לטעון את הקובץ 404.php
אך במידה והוא לא קיים יטען index.php
.
עמוד תוצאות חיפוש
סוג העמוד האחרון הוא עמוד תוצאות החיפוש, עמוד זה יציג לגולש את תוצאות החיפוש שהוא ביצע לרוב לפי מילת חיפוש מסויימת אך במקרים יותר מורכבים ניתן על פי פרמטרים נוספים וע״י שינוי מנגנון החיפוש של וורדפרס. כאשר יוצג למשתמש עמוד תוצאות החיפוש, וורדפרס תנסה לטעון את הקובץ search.php
אך במידה והוא לא יהיה קיים יטען הקובץ index.php
.
קבצי תבנית ספציפיים
וורדפרס מאפשרת לנו גמישות רבה יותר ע״י כך שהיא מאפשר לנו לעצב עמוד מאמר ספציפי או עמוד קטגורייה מסויימת ע״י מספר פרמטרים בשם הקובץ. הפרמטרים אשר מאפשרים לנו לטרגט עמוד ספיצי הם – מזהה אובייקט (מספר), מזהה ה-Slug, סוג האובייקט, שם משתמש ולבסוף סוג MIME.
מזהה אובייקט (מספר)
מזהה האובייקט הוא בעצם המספר המזהה שלו, לרוב זה יהיה מספר העמוד או מספר הקטגוריה, לצורך העניין יצרנו קטגוריה שנקראת קוד ופיתוח והמספר המזהה שלה הוא 3, ניתן ליצור קובץ בשם category-3.php
ולשנות את העיצוב של הקטגוריה הספציפית הזאת. במידה ומדובר בעמוד (Page) ספציפי, לדוגמא עמוד אודות, אשר המספר המזהה שלו הוא 100, ניתן ליצור קובץ בשם page-100.php
ולשנות את העיצוב של העמוד הספציפי הזה.
מזהה ה-Slug
לכל אובייקט בוורדפרס, בין אם זה פוסט או קטגוריה יש גם slug, ה-slug הוא בעצם המזהה המילולי של האובייקט אשר יוצג בשורת הכתובת, לדוגמא אם הכתובת של הקטגוריה קוד ופיתוח היא https://www.dorzki.io/category/code-and-development/
ניתן לראות כי ה-slug הוא בעצם code-and-development
. כעת נוכל ליצור קובץ בשם category-code-and-development.php
ולשנות את העיצוב של עמוד הקטגוריה הספציפי.
סוג האובייקט
כאשר מדברים על סוג אובייקט ניתן לחלק את זה לשני חלקים, Post Type ו-Taxonomy. כאשר מדובר ב-Post Type, אנחנו מבינים כי לצורך העניין עמוד פוסט יראה שונה לגמרי מעמוד מוצר, לכן ניתן ליצור קובץ תבנית לאובייקט מסויים לפי המזהה שלו, אם נגיד מדובר במוצר (נניח שהמזהה שלו הוא product), ניצור קובץ אשר נקרא single-product.php
. במידה ומדובר ב-Taxonomy, אם נראה שקטגוריית מוצרים תראה אחרת מאשר קטגוריית מאמרים, אנחנו ניצור קובץ אשר נקרא taxonomy-product_category.php
בהנחה שמזהה הטקסונומיה הינו product_category
.
שם משתמש
במידה ויש לנו בבלוג מספר כותבים ואנחנו מעוניינים שלכל אחד מהכותבים יהיה מבנה טיפה שונה בהתאם לאישיות שלו או לתחביב שלו, נוכל לעצב את העמוד של כל אחד מהם לפי שם המשתמש שלו, לדוגמא אם השם משתמש שלי היה dorzki
, נוכל ליצור עמוד בשם author-dorzki.php
ולשנות את הנראות של ארכיון הכותב הספיצי לי.
סוג MIME
במידה ויש לנו בבלוג פוסטים אשר מכילים, אודיו, תמונות או סרטונים, מן הסתם שנרצה לעצב את עמוד ה-Attachment לפי הסוג שלו, לדוגמא אם המשתמש צופה בעמוד Attachment מסוג אודיו, אנחנו נרצה שיוצג לו נגן שהוא יוכל ללחוץ על Play, אך אם הוא צופה ב-Attachment מסוג תמונה, נרצה שהתמונה תוצג לו.
נוכל לעשות זה על ידי טרגוט של סוג ה-Attachment, אם לדוגמא מדובר על קובץ אודיו ניצור קובץ בשם audio.php
ובו נשים את הקוד של הנגן.
קבצי תבניות עמוד
מלבד קבצי התבנית הרגילים, וורדפרס מאפשרת לנו ליצור קבצי תבניות עמוד אשר אלו הם קבצים תבניות אשר נוכל לבחור מתי להשתמש בהם, לדוגמא במקום לטרגט עמוד אודות לפי מספר מזהה או לפי ה-Slug, נוכל לבחור בעמוד הספציפי הזה להשתמש בתבנית מסויימת. נעשה זאת ע״י יצירת קובץ חדש עם שם כלשהו. אני אישית מעדיף תמיד ליצור קבצי תבניות עמוד עם התחילית template, כך שבמידה ונגיד אנחנו בונים תבנית לעמוד אודות, נקרא לקובץ template-about.php
.
עכשיו על מנת לגרום לוורדפרס להבין כי מדובר בעמוד מסוג Page Template, נערוך אותו ונדביק את הקוד הבא:
<?php
/**
* Template Name: About Us
*/
כעת אם נלך לפאנל ניהול ונערוך עמוד נראה כי יש לנו את האופציה לבחור ״תבנית עמוד״, ונראה כי יש את ״תבנית רגילה״ וכאשר נלחץ עליה נראה כי יש לנו אופציה חדשה שנקראת About Us. כעת כאשר גולש יכנס לעמוד הספציפי הזה, וורדפרס תדע להתעלם מתבניות ברירת המחדל ובמקום זה להציג את תבנית העמוד המיוחדת שבחרנו.
סיכום
וורדפרס מאפשרת לנו גמישות מטורפת בשליטה על עיצוב ומבנה של כל אחד ואחד מהעמודים באתר, בין אם זה שליטה גלובאלית ע״י תבניות כלליות או בין אם זה שליטה פרטנית ע״י שימוש בקבצי תבנית ספציפיים או בתבניות עמוד. מנגנון התבניות של וורדפרס הוא אחד הכלים החזקים שלה והוא נמצא בשימוש מתמיד כאשר בונים תבניות.
בחלק הבא של סדרת המאמרים, אנחנו נבנה את עמוד התבנית של פוסט ונחבר אותו ככה שנוכל לראות את הפוסטים אשר מפורסמים באתר כאשר לוחצים על פוסט ספציפי.