Search

יצירת תבנית עמוד מותאמת (Custom Page Template) בוורדפרס

תבניות עמוד בוורדפרס הנקראות 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.

רועי יוסף
רועי יוסף

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

17 תגובות...
  • מתעניין 1 מרץ 2021, 13:43

    היי רועי
    מוסבר יפה והאתר הזה אגב בעיצוב נעים מאוד. תודה

    במידה ואני לא משתמש בתבנית בת כיום,
    איך אני שומר שתבנית-עמוד שאני יוצר בתבנית הראשי לא ימחק בעדכון הבא?

    • רועי יוסף 1 מרץ 2021, 15:08

      פשוט צור אותה בתבנית הבת ולא בתבנית הראשית…

  • אדיר פרץ 11 אפריל 2021, 23:57

    תודה רבה חומר לימוד איכותי מאוד ⁦⁩

  • גיל המר 7 ספטמבר 2021, 11:09

    טיפ קטן:
    כ – Best Practice הייתי ממליץ לא להשתמש בעברית בקוד. במקרה שלך בשם התבנית, אלא לייצר קובץ תרגום ולתרגם מחרוזות טקסט באמצעות הפונקציה:

    load_theme_textdomain

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

  • ניאו 6 אוקטובר 2021, 20:30

    שלום חבר, מדריך מדהים.
    שאלה: האם יש אפשרות לקבוע פונט לאנגלית ופונט לעברית? (אם במשפט אחד יש מילים בשני השפות)

    • רועי יוסף 6 אוקטובר 2021, 20:43

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

      למשל:

      <span class="eng">Header</span>תבנית עמוד שתציג את ה
      .eng {
          font-family: "The font family you choose";
      }
      • ניאו 6 אוקטובר 2021, 20:46

        תודה רבה חבר יקר ,
        אני אנסה 🤗

  • דני 12 ינואר 2022, 13:08

    שלום וברכה, תודה על ההסבר המפורט.

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

    האם אתה מכיר דרך לעשות את זה בוורדפרס או שזה ממש דורש תכנות?

    תודה רבה

    • רועי יוסף 25 ינואר 2022, 18:16

      היי דני, סליחה על התגובה המאוחרת…

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

  • ציפיה 25 ינואר 2022, 17:53

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

  • שירה 14 יולי 2022, 12:55

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

    • רועי יוסף 14 יולי 2022, 13:52

      היי שירה,

      כל הרעיון של תבנית מותאמת הוא היכולת לקבוע את המבנה של העמודים באמצעות אותה תבנית עמוד מותאמת (כמובן שהתוכן גם כן שונה). בכל אופן, אם את מחפשת לאפשר תבנית שונה עבור פוסטים מסויימים באתר (ואת לא מייצרת סוג תוכן חדש [CPT]), אז את יכולה פשוט להוסיף קובץ PHP בתיקיית התבנית כשמופיע בראשו הקוד הבא:

      <?php
      /*
      Template Name: My new page layout
      Template Post Type: post
      */

      (את Template Name ניתן לשנות כמובן).

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

  • שירה 14 יולי 2022, 16:18

    תודה על המענה המהיר. האמת שלא לגמרי הבנתי.
    את הקוד הזה לשים ב"עורך קבצי תבנית"
    הקוד שם ארוך- זה משנה איפה אני שמה את ז הקוד?

    • רועי יוסף 14 יולי 2022, 16:55

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

תגובה חדשה

Up!
לבלוג