תבניות עמוד בוורדפרס הנקראות Custom Page Templates בלעז, מאפשרות לכם לייצר תבנית עמוד מותאמת לדרישות הספיציפיות שלכם. למשל, תבנית עמוד עם סרגל צידי או כזו ללא, עמוד עם תפריט ייחודי, או עמוד עם מבנה תוכן שונה לגמרי ממבנה העמוד הדיפולטיבי של התבנית שלכם (theme).
כברירת מחדל, על התצוגה של כל העמודים בוורדפרס אחראי במרבית המקרים הקובץ page.php
, אך בהתאם לקבצים הקיימים בתבנית שלכם, ייתכן וקובץ אחר יהיה זה האחראי לתצוגה של עמוד כזה או אחר בהתאם להיררכית הקבצים הקיימים בתבנית שלכם.
אותה היררכיה מכתיבה איזה קובץ יהיה בשימוש בכדי להציג סוגי תוכן שונים, ותקח בחשבון את כלל סוגי התוכן כגון פוסטים, עמודים, סוגי תוכן מותאמים וטקסונומיות ומעבר לכך מאפשרת לכם אף ליצור תבניות יחודיות לעמודים ספציפיים.
עוד על ההיררכיה של תבניות עמוד בפוסט היררכיה של תבניות עמוד (Page Templates) בוורדפרס.
בפוסט זה נראה כיצד ליצור תבנית עמוד חדשה בה תוכלו להשתמש לבחירתכם בכל עמוד באתר שלכם.
יצירת תבנית עמוד חדשה – Create Custom Page Template
בכדי ליצור תבנית עמוד חדשה בה תוכלו להשתמש באתר שלכם, צרו קובץ חדש בעורך המועדף עליכם ושמרו אותו בתיקייה הראשית של התבנית (או תבנית הבת), בין אם אתם מתקינים את וורדפרס לוקאלית ופשוט שומרים אותו במחשב האישי, או שאתם משתמשים ב FTP בכדי להעלות את הקובץ לשרת.
בכל אופן, במקרה שלנו נקרא לקובץ בשם faq.php
אך תוכלו לקרוא לו בכל שם שתרצו. לאחר מכן, ערכו את הקובץ והדביקו את הקוד הבא בראשו:
<?php /* Template Name: שאלות ותשובות */ ?>
שימו לב – שם הקובץ חייב להיות עם הסיומת php והוא חייב להיות בתיקייה ראשית של התבנית שלכם.
קוד זה מציין לוורדפרס כי זו תבנית עמוד בשם ״שאלות ותשובות״ במקרה שלנו. מה שנותר לנו כעת הוא לשייך את תבנית העמוד החדשה לעמוד כלשהו.
שיוך תבנית עמוד מותאמת לעמוד ספציפי
אם תגשו בממשק הניהול של וורדפרס לעמודים > עמוד חדש ותצרו עמוד חדש, תגלו כי תחת הרובריקה תבנית עמוד (Page Template) תופיע לכם האופציה לבחור את אותה תבנית עמוד חדשה שיצרתם.
בעורך הקלאסי זה נראה כך (ראו חלקו השמאלי התחתון של התמונה):
ובעורך של גוטנברג (וורדפרס 5.0+) זה נראה כך:
כעת, אם תצפו בעמוד תגלו אמנם עמוד ריק, אך עמוד זה ישתמש בתבנית עמוד החדשה שיצרתם. העמוד יהיה ריק מכיוון ולא קבענו איזה תוכן יופיע בעמוד זה בקובץ עצמו.
הנה למשל תבנית עמוד שתציג את ה Header של האתר, את התוכן שתוסיפו בעורך התוכן של העמוד עצמו, ואת ה Footer של האתר.
<?php /* Template Name: שאלות ותשובות */ ?>
<?php get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
// Start the loop.
while ( have_posts() ) : the_post();
// Include the page content.
the_content();
// End of the loop.
endwhile;
?>
</main><!-- .site-main -->
</div><!-- .content-area -->
<?php get_footer(); ?>
אתם יכולים לערוך תבנית עמוד זה ולהוסיף תוכן כרצונכם. ואם אתם סקרנים לדעת מדוע לא פשוט ערכתי את קובץ page.php
, אז אני מניח שברור לכם שאם הייתי עורך קובץ זה, כל העמודים באתר היו מושפעים מהשינוי מכיוון והם משתמשים בקובץ זה, כלומר בתבנית עמוד זו להצגת העמודים. אם אנחנו רוצים ליישם שינוי או עיצוב מסויים לעמודים ספציפים, עלינו להשתמש בתבנית עמוד מותאמת עבורם.
עד כאן. מידע נוסף על Page Templates תמצאו ב WordPress Codex.
היי רועי
מוסבר יפה והאתר הזה אגב בעיצוב נעים מאוד. תודה
במידה ואני לא משתמש בתבנית בת כיום,
איך אני שומר שתבנית-עמוד שאני יוצר בתבנית הראשי לא ימחק בעדכון הבא?
פשוט צור אותה בתבנית הבת ולא בתבנית הראשית…
תודה רבה חומר לימוד איכותי מאוד
שמח שאתה אוהב 🙂
טיפ קטן:
כ – Best Practice הייתי ממליץ לא להשתמש בעברית בקוד. במקרה שלך בשם התבנית, אלא לייצר קובץ תרגום ולתרגם מחרוזות טקסט באמצעות הפונקציה:
כמו כן רוצה להוסיף שלמען הסדר הטוב אפשר לארגן את כל קבצי התבניות בתיקייה מסודרת, נניח page-templates, המערכת תדע לזהות אותם גם מתוך תיקייה.
אמת, תודה על האינפורמציה גיל 🙂
שלום חבר, מדריך מדהים.
שאלה: האם יש אפשרות לקבוע פונט לאנגלית ופונט לעברית? (אם במשפט אחד יש מילים בשני השפות)
היי ניאו, לא רואה את הקשר לפוסט הזה 🙂 בכל מקרה, אם אתה רוצה לעשות כזה דבר אתה חייב להשתמש בתגית HTML כלשהי ואז לתת לה סטייל שונה (פונט במקרה שלך).
למשל:
תודה רבה חבר יקר ,
אני אנסה 🤗
שלום וברכה, תודה על ההסבר המפורט.
יש לי שאלה קצת אחרת – אני רוצה ליצור תבנית שבה כל נרשם יוכל למלא לפי הגדרות מאד ספציפיות. הכוונה היא להכניס פינה של בעלי מקצוע לאתר שלי – כל בעל מקצוע יוכל למלא את הפרטים שלו לפי תבנית מסוימת מוגדרת מראש. אח"כ זה יופיע לגולשים בתור עמוד אחד שמרכז בצורה אחידה את כל בעלי המקצוע עם אפשרות של חיפוש וסינון.
האם אתה מכיר דרך לעשות את זה בוורדפרס או שזה ממש דורש תכנות?
תודה רבה
היי דני, סליחה על התגובה המאוחרת…
אם אני מבין נכון את הכוונה שלך, אז ניתן לעשות זאת בוורדפרס. אך ״לעשות זאת בוורדפרס״ במקרה הזה דורש הבנה מעמיקה של כיצד וורדפרס עובדת וגם דורשת ידע בתכנות. מציע כי תעזר בבעל מקצוע.
היי, ממש אשמח לעזרה…
נרשמתי לראשונה לוורדפרס ובחרתי בטעות בתבנית מסוימת. אני רוצה לשנות לתבנית ריקה לגמרי, זה אפשרי? מציינת שעוד לא התחלתי לעצב בכלל…
היי ציפיה,
איך את מתכוונת לעצב וליצור את העמודים? האם את משתמשת בתוסף כמו אלמנטור? אם כן, את יכולה להשתמש בתבנית הריקה של אלמנטור. אם אינך משתמשת באלמנטור ואת מתכוונת לתבנית ריקה עליה את רוצה לפתח את האתר (ואת יודעת תכנות) אז את יכולה להוריד תבנית ריקה בשם underscores מקישור זה.
אציין כי הפוסט הזה מדבר על תבניות עמוד (Page Templates) ולא כל תבנית עיצוב (Themes).
הי רועי,
תודה על המידע. אתה כותב ממש ברור ונעים. האם ניתן ליישם את מה שכתבת גם על פוסטים? שהניראות של כל הפוסטים תהיה זהה ורק התוכן יתחלף לפי מה שמזינים? וגם, אם בדרך כזאת (אם יש כזאת בכלל…) אפשרי שבסוף כל הפוסטים יהיו מוצגים בעמוד הבלוג אחד אחרי השני ברצף
היי שירה,
כל הרעיון של תבנית מותאמת הוא היכולת לקבוע את המבנה של העמודים באמצעות אותה תבנית עמוד מותאמת (כמובן שהתוכן גם כן שונה). בכל אופן, אם את מחפשת לאפשר תבנית שונה עבור פוסטים מסויימים באתר (ואת לא מייצרת סוג תוכן חדש [CPT]), אז את יכולה פשוט להוסיף קובץ PHP בתיקיית התבנית כשמופיע בראשו הקוד הבא:
(את Template Name ניתן לשנות כמובן).
פעולה זו תאפשר לך לבחור תבנית אחרת רק עבור פוסטים תחת הרובריקה ״תבנית עמוד״ במסך העריכה של הפוסט. מקווה שהייתי ברור.
תודה על המענה המהיר. האמת שלא לגמרי הבנתי.
את הקוד הזה לשים ב"עורך קבצי תבנית"
הקוד שם ארוך- זה משנה איפה אני שמה את ז הקוד?
את צריכה ליצור קובץ PHP בתיקיית התבנית, להכניס לתוכו את הקוד, ולשמור. אבל שיהיה ברור שזו תהיה תבנית ריקה שלא תציג כלום. אם אין זה ברור אני מציע שתעזרי באיש מקצוע לטובת העניין, כי נדרש ידע בתכנות במקרה זה.