שימוש בפונקציה query_posts

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

1
query_posts($query_string."showposts=10");

שימו לב שלפונקציה צריך לקרוא לפני הלולאה.

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

  • showposts - מספר הפוסטים לשליפה עבור הלולאה
  • cat - הצג רק פוסטים מהקטגוריה מספר…
  • category_name – הצג רק פוסטים מהקטגוריה ששמה… (שימושי לתבנית שמיועדת להפצה למספר בלוגים)
  • meta_key,meta_value – מאפשר שליפת פוסטים בעלי ערך מסויים בשדה מיוחד
  • author - פוסטים של מחבר מספר…
  • author_name – פוסטים של מחבר ששמו…

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

כמה קטעי קוד שימושיים:

לתבניות מגזין נשמתש בד"כ במספר לולאות, הראשית תציג featured post ותראה כך:

1
2
3
4
5
6
query_posts("category_name=featured&showposts=1");
if (have_posts()) :
    while(have_posts()) : the_post();
        //do stuff ...
    endwhile;
endif;

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

1
query_posts("cat=7&showposts-1"); //change 7 to your glossary cat #.

את הקוד בתוך הלולאה שנו כך:

1
2
3
4
<div class="single_term">
    <span class='term_name'>< ? the_title(); ?></span>
    <span class="term_data'>< ? the_content(); ?></span>
</div>

אל תשכחו להוסיף תחילית של תבנית

1
2
3
4
5
< ?
/*
 * Template Name: Glossary
 */

?>

עכשיו נותר לדאוג שהפוסטים הללו לא יופיעו בשאר הבלוג.
אפשרות ראשונה:
להשתמש ב-query_posts

1
query_posts($query_string."cat=-7");

צריך להוסיף שורה זו לקובץ index.php
אפשרות שניה וקלה יותר,
להשתמש בתוסף Advance Category Excluder

025 שימוש בפונקציה query posts נהניתם ? הרשמו לעדכוני RSS !

הצגת פוסטים הקשורים לתגית

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

  • tag-slug.php
  • tag.php
  • category.php
  • index.php

כלומר, עבוא התגית וורדפרס שהסלאג שלה הוא wp יתבצע חיפוש אחר דף התבנית tag-wp.php אם הדף נמצא – מצויין. אם לא, המערכת תחפש את tag.php וכן הלאה.

אסף שאל איך ניתן לעשות דף שיראה רק את הקישורים לפוסטים הקשורים לתגית, התשובה היא בקובץ tag.php.

קחו את קובץ index.php של התבנית שלכם (או את category.php) ויצרו עותק חדש שלו בשם tag.php.
בקובץ החדש החליפו את תוכן הלולאה בקוד הבא:

1
<li><a href='<? the_permalink();?>'>< ? the_title();?></a></li>

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

עוד על תבנית התגיות בקודקס של וורדפרס

025 הצגת פוסטים הקשורים לתגית נהניתם ? הרשמו לעדכוני RSS !

שימוש מושכל בתגיות וורדפרס

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

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

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

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

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

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

  • שם
  • סלאג
  • תיאור

זה הזמן להפיק מהם את המירב. כתיוג פונקציונלי אנחנו מניחים שבתגיות ייעשה שימוש רב לתצוגה בבלוג ולכן הגיע הזמן להרים להן דף תבנית. לדף התבנית קוראים tag.php

בעקרון בלא מעט תבניות כיום הוא כבר קיים, אם הוא לא קיים בשלכם, העתיקו את index.php ושנו את שמו.

כיוון שיש לנו סיבה לשימוש בתגיות, שווה להתחיל להוסיף להן תיאורים ע"י שימוש בממשק הניהול.

ברגע שהוספנו, נוסיף לעמוד  tags.php את הקוד הבא ישר לפני הלולאה

1
2
echo "<h2>".single_tag_title()."</h2>\n";
echo "<p>".tag_description()."</p>\n";

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

  • מעתיקים את single.php לקובץ בשם glossary.php
  • מוסיפים בראשית הקובץ הערת תבנית:
  • 1
    2
    3
    4
    5
    < ?
    /*
     * Template name: Glossary
     */

    ?>
  • מחליפים את הלולאה בקוד הבא:
    1
    2
    3
    4
    5
    6
    7
    8
    $tags = get_tags();
    if ($tags) {
        echo "<dl>\n";      
        foreach ($tags as $tag) {
            echo "<dd><a href='".get_tag_link($tag->term_id)."' title='{$tag->count} posts'>{$tag->name}</a></dd><dd>{$tag->description}\n";
        }
    }
    </dd></dl>
  • יוצרים עמוד המשתמש בתבנית Glossary שיצרנו

025 שימוש מושכל בתגיות וורדפרס נהניתם ? הרשמו לעדכוני RSS !