עיצוב עמוד ראשי

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$i=0;
if (have_posts()) : while (have_posts()) : the_post(); ?>
      <h1><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h1>
      <p class="details">נשלח <?php the_time('j F, Y'); ?> - נושאים <?php the_category(', ') ?> | <?php comments_popup_link('ללא מילים', 'תגובה אחת', '% תגובות'); ?></p>
      <?php
            if ($i <=3)
                 the_content(__('המשך'));
            else
                 the_excerpt(__('המשך'));
       ++$i; ?>
<?php endwhile; else: ?>
           <p><?php _e('לא מצאתי את מה שחיפשת.'); ?></p>
<?php endif; ?>
<?php posts_nav_link(' &#8212; ', __('&laquo; בחזרה'), __('להמשך חיפוש &raquo;')); ?>

זהו למעשה הקוד העיקרי של דף הבית שלי מה שמכונה the_loop.
כאמור בפוסט אליו הפניתי הקוד הזה מציג את ארבעת הפוסטים הראשונים בשלמותם ואת הבאים אחריהם חלקיים על ידי שימוש לסירוגין בפונקציות the_content ו-the_excerpt.

the_content היא פונקציה המדפיסה את כל התוסן של פוסט מסויים, לעומתה the_excerpt מדפיסה רק תקציר – אם הוזן ואם לא את 100 התווים הראשונים של הפוסט בלא לחתוך מילים. פונקציות אלו מאפשרות לנו להציג בקלות פוסטים מלאים או חלקיים לרצוננו בלא להשתמש ב-More שחותך את ערוץ ה-RSS של הבלוג ולא רק את הצגת הפוסטים.

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

1
<a href='<? the_permalink(); ?>' rel='bookmark' class='more'>להמשך קריאה &raquo;</a>

שייצר לנו קישור שייראה כך להמשך קריאה ».
הקוד המלא לאחר השינוי ייראה כך:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$i=0;
if (have_posts()) : while (have_posts()) : the_post(); ?>
      <h1><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h1>
      <p class="details">נשלח <?php the_time('j F, Y'); ?> - נושאים <?php the_category(', ') ?> | <?php comments_popup_link('ללא מילים', 'תגובה אחת', '% תגובות'); ?></p>
      <?php
       if ($i <=3)
            the_content(__('המשך'));
       else {
            the_excerpt(__('המשך'));?>
           <a href='<? the_permalink(); ?>' rel='bookmark' class='more'>להמשך קריאה &raquo;</a> < ?
       }
       ++$i; ?>
<?php endwhile; else: ?>
            <p><?php _e('לא מצאתי את מה שחיפשת.'); ?></p>
<?php endif; ?>
<?php posts_nav_link(' &#8212; ', __('&laquo; בחזרה'), __('להמשך חיפוש &raquo;')); ?>

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

025 עיצוב עמוד ראשי נהניתם ? הרשמו לעדכוני RSS !

15 תגובות על הפוסט “עיצוב עמוד ראשי

  1. זה אחד הדברים שאני הכי אוהב ומעריך ב-WP.
    המודולאריות הרבה של המערכת.
    היכולת ליישם כל כך הרבה ואריאציות על המערכת הזאת.
    אגב, הסבר מצוין כרגיל :)

  2. תודה. זה גם אחד הדברים שאני הכי אוהבת במערכת.
    המודולגיות באה לידי ביטוי החל ביכולות המרובות בעיצוב התבניות וכלה ביכלות כתיבת\הוספת תוספים למערכת.
    כיף גדול.

  3. אני מקבל את השגיאה הבאה בהרצת הקוד:

    1
    Parse error: syntax error, unexpected T_IF in /domain/public_html/wp-content/themes/curved-10/index.php on line 16

    ושורה 16 זאת השורה שכוללת את ה-if ($i

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

  5. טוב, הצלחתי לגרום לזה לעבוד, בעזרת התוסף the_excerpt_Reloaded. הנה איך שעשיתי את זה (רק הקוד הרלוונטי):

    1
     
    1
    ', 'none', FALSE, 'קרא את המשך הפוסט &raquo;', FALSE, 1, TRUE);?&gt; <a>' rel='bookmark' class='more'&gt;להמשך הפוסט &raquo;</a>

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

    ועוד שאלה שנולדה עכשיו, האם אני יכול להוסיף איזשהו תנאי שהסקריפט ירוץ רק בעמוד הראשון ולא בכל שאר העמודים של הבלוג? כרגע הוא מציג לי את הפוסט הראשון בכל עמוד באורכו המלא ואת 120 התווים הראשונים של שאר ה-4 פוסטים שיש לי בעמוד.

  6. המממ הוא לא מציג את כל הקוד… אני מנסה שוב:

    1
    ', 'none', FALSE, 'קרא את המשך הפוסט &raquo;', FALSE, 1, TRUE);?&gt; <a>' rel='bookmark' class='more'&gt;להמשך הפוסט &raquo;</a>
  7. אין לי ספק בכך :)
    ונראה לי שאני צריך ללמוד לעשות קופי-פייסט… מחקתי לגמרי, העתקתי ל-gedid, תיקנתי את הרווחים, העתקתי ל-screem, וידאתי שהכל תקין מבחינת ה-PHP, שמרתי והעליתי לשרת, ופתאום הכל עובד :)
    אני לא ממש יודע במה הייתה הבעיה, אני רק זוכר שהיא התחילה בכך ששיניתי את כמות הפוסטים שהחל ממנה יוצגו רק תקצירים (במקום 3 רשמתי 0).

    שוב פעם תודה רבה לך על המדריך והעזרה! :)

כתיבת תגובה

האימייל שלך לא יוצג באתר. (*) שדות חובה מסומנים

*


:mrgreen::|:twisted::arrow:8O:):?8):evil::D:idea::oops::P:roll:;):cry::o:lol::x:(:!::?:

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