דף הבית » טריקים וטיפים, מומלצים

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

25 בינואר 2011 | מאת רמי | 5 תגובות | תגיות: , , , ,

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

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

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

תבניות וורדפרס

תבניות וורדפרס

יצירת קובץ תבניות

אפשר לשנות את התצוגה של העמוד הראשי על ידי עדכון (או יצירת) קובץ front-page.php או שאפשר ליצור "תבנית עמוד" (Page Template) חדשה לדוגמא template-front-page.php. בדוגמא הנ"ל השתמשתי בתבנית עמוד המבוססת על המבנה של archive.php בערכת העיצוב TwentyTen, יתכן שתצטרכו להתאים את הקוד לתבנית שלכם:

<?php
/**
 * Template Name: Front Page Template
 */

?>
<?php get_header(); ?>
    <div id="container">
        <div id="content" role="main">

            // my code....

        </div>
    </div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

עדכונים אחרונים מפולחים לפי קטגוריות

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

<?php $cat_list = array( 5, 31, 6, 36, 50, 51 ); ?>
<?php $post_per_cat = 3; ?>

<?php foreach ( $cat_list as $category ) : ?>

    <?php $query = array( 'category' => $category, 'numberposts' => $post_per_cat, 'post__not_in' => $do_not_duplicate ); ?>
    <?php $headlines = get_posts( $query ); ?>
    <?php if ( !empty( $headlines ) ) : ?>

    <div class="present">
        <?php $cat = get_category( $category ); ?>
        <h1><a href="<?php echo get_category_link( $category ); ?>"><?php echo $cat->name; ?></a></h1>

        <?php foreach ( $headlines as $post ) : $do_not_duplicate[] = $post->ID; ?>
        <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
            <h2 class="entry-title"><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
            <div class="entry-meta"><?php twentyten_posted_on(); ?></div>
        </div>
        <?php endforeach; ?>
    </div>

    <?php endif; ?>

<?php endforeach; ?>

הסבר

זהו קוד מאוד פשוט שאני משתמש בו הרבה, אומנם הקוד עושה שימוש בפונקציה get_posts() אך אני מעדיף להשתמש ב-WP_Query, אבל שתי השיטות מקובלות.

הקוד בעצם מאפשר לנו להגדיר אילו קטגוריות להציג ($cat_list) וכמה פוסטים להציג בכל קטגוריה ($post_per_cat). כמו כן יש בקוד מנגנון מובנה המונע כפילויות ($do_not_duplicate), במקרה ופוסט מסוים קוטלג במספר קטגוריות הוא לא יוצג פעמיים.

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

מאת רמי

אחראי על אתר וורדפרס בעברית ועל תרגום ושחרור גרסאות וורדפרס בעברית. מפתח ליבה, בכל גרסה החל מגרסה 2.8, מפתח מוביל בגרסה 4.4 ובגרסה 4.6. מספק שירותי פיתוח אתרים, פיתוח תוספי וורדפרס לסטרטאפים ופיתוח כלים למפתחי וורדפרס - GenerateWP.com.

5 תגובות »

  • Chris כותב :

    this whole blog looks upside down and back to front…;)

  • אביחי כותב :

    שלום רמי
    אנימנסה להציג בתוך הפונקציה את
    וזה לא מציג התקציר

    תודה מראש

  • אביחי כותב :

    שלום שוב
    אני רואה שלא ניכתב השם של המשתנה שאני מנסה להציג
    להלן המשתנש שאני משתמש להצגת התקציר – the_excerpt()

    תודה על העזרה

  • כפיר כותב :

    רמי שלום
    לא כל כך הבנתי את התהליך
    קודם יוצרים קובץ PHP
    אחרי זה מעתיקים את הקוד הראשון?
    לקובץ ואז איפה שכתוב
    // my code…. בקוד מוסיפים את החלק קוד השני
    אחרי שביצעתי את כל התהליך הזה
    פה אני לא יודע מה עושים

  • רמי כותב :

    כפיר, יצרנו תבנית עמוד (Front Page Template). בסיום התהליך יש ליצור עמוד חדש במערכת ולבחור לו את תבנית העמוד הזו.

הוסף תגובה !

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

תגיות HTML מורשות לשימוש:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>