פוסטים הינם חלק אינטגרלי מכל אתר היום, גם מאתרים תדמית שבונים לרוב מומלת ליצור איזור של מאמרים או בלוג פעיל בשביל קידום האתר באופן אורגני במנועי החיפוש. במאמר זה נלמד כיצד בונים קובץ תבנית עבור עמוד פוסט באתר, ואף איך לבנות קבצים דומים עבור סוגי תוכן שונים באתר.
היררכיית קבצי התבנית
כאשר בונים תבנית וורדפרס יש לנו המון אופציות אשר מאפשרות לנו להתייחס לכל ממיני מקרים שונים ולתת התייחסות מלאה לכל מקרה ומקרה באתר שלנו, בין אם לבנות תבנית שונה עבור כל קטגוריה, או בניית עמוד שונה עבור כל Post Type וכד׳. כאשר מדברים על עמודי Single, ניתן להתייחס למספר קבצים:
singular.php
– קובץ זה יטען כאשר צופים בעמוד פוסט (Post) או עמוד תוכן (Page) ולא קיים עבורם קובץ תבנית מתאים.single.php
– קובץ זה יטען כאשר צופים בעמוד פוסט (Post) או כל עמוד תוכן אחר (CPT) שהוא לא עמוד תוכן (Page) ולא קיים עבורם קובץ תבנית מתאים.single-$posttype.php
– קובץ זה יטען כאשר צופים בעמוד תוכן מיוחד כאשר שם העמוד כולל את מזהה ה-CPT, לדוגמא עבור עמוד פוסט (Post) נבנה קובץ שנקראsingle-post.php
.
כמובן שבמידה ולא קיים אף אחד מהמקרים הנ״ל וורדפרס תטען את קובץ התבנית הראשי index.php
.
בניית קובץ תבנית Single
על מנת להתחיל, אנו ניצור קובץ חדש בתיקיית התבנית אשר נקרא single-post.php
אשר יכיל בתור התחלה את הקוד הבסיסי הבא:
<?php get_header(); ?>
<!-- Main Content -->
<section id="wrapper">
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php endwhile; ?>
<?php endif; ?>
</section>
<!-- /Main Content -->
<?php get_footer(); ?>
הצגת תוכן העמוד
לאחר שיצרנו את הקובץ, והכנסו בו את הקוד הבסיסי, נצטרך כעת להשתמש ב-Template Tags על מנת להציג את נתונים העמוד השונים, כותרת, תוכן, מחבר, קטגוריות וכד׳. נפתח את הקובץ שיצרנו single-post.php
ובתוך The Loop נכניס את הקוד הבא:
<!-- Post Header -->
<header>
<div class="inner">
<h2><?php the_title(); ?></h2>
<p><?php printf( __( 'Posted on %s by %s', 'solid-state' ), '<time datetime="' . get_the_time( 'c' ) . '">' . get_the_date() . '</time>', '<strong>' . get_the_author() . '</strong>' ); ?> </p>
</div>
</header>
<!-- /Post Header -->
<!-- Post Content -->
<div class="wrapper">
<div class="inner">
<?php the_content(); ?>
<p><strong><?php esc_html_e( 'Filed under:', 'solid-state' ); ?></strong> <?php the_category( ', ' ); ?></p>
</div>
</div>
<!-- /Post Content -->
הקוד הבא ידאג להדפיס את כותרת הפוסט (the_title()
), תאריך פרסום הפוסט (get_the_date()
), שם המחבר (get_the_author()
), את תוכן העמוד (the_content()
) ואת הקטגוריות בהן מתוייג העמוד (the_category()
).
הוספת ניווט בין פוסטים
במידה ונרצה להציג קישורים למעבר בין פוסטים, ע״י הצגת הפוסט הקודם והפוסט הבא, נוכל לעשות זאת ע״י הוספת הקוד הבא בתוך הלולאה שלנו בקובץ single-post.php
.
<!-- Post Navigation -->
<div class="post-nav">
<?php previous_post_link(); ?> • <?php next_post_link(); ?>
</div>
<!-- /Post Navigation -->
סיכום
בחלק זה בסדרה למדנו איך ליצור עמוד Single עבור הפוסט באתר שלנו, אך ניתן לקחת את זה הלאה וליצור קבצים עבור סוגי תוכן אחרי באתר, עמודים, קבצי מדיה וכד׳. בחלק הבא בסדרה נלמד איך לקבל את התגובות של עמוד הפוסט ואיך להציג את טופס שליחת התגובה.
שלום דור, לא הבנתי למה הוא צריך להיות בלולאה מתי שאני מציגה פוסט בודד, הוא הרי לא מציג לי בעמוד הזה את כל הפוסטים. לא בדיוק הבנתי אם תוכל לעזור לי לחדד את הנושא, תודה רבה.
היי אסתר 👋,
נכון שלא צריך להיות בלולאה, אך וורדפרס עובדת בצורה הזאתי, במידה את לא תגדירי את הלולאה, התוכן של המאמר לא יוצג (
the_content()
).