דף הבית » טריקים וטיפים

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

אחד השינויים המרכזיים בוורדפרס 3.1 הוא כל נושא השאילתות. בפוסט זה אציג מספר שאילתות-וורדפרס ישנות ושאילתות חדשות להצגת טקסונומיה מותאמת אישית (Custom Taxonomies) ושדות מיוחדים (Custom Fields). מקווה שתלמדו טריק או שניים.

קוד וורדפרס

קוד וורדפרס

לא משנה באיזו צורה אתם מושכים את התכנים – בעזרת query_posts(), או get_posts() או WP_Query, השימוש בשאילתות המורכבות דומה.

טקסונומיה מותאמת אישית

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

$args = array(
    'cat' => 123,
    'tag' => 'games'
);
query_posts( $args );

הרי שמהיום ניתן יהיה להגדיר גם טקסונומיה מותאמת אישית בעזרת:

$args = array(
    'tax_query' => array(
        'relation' => 'OR',
        array(
            'taxonomy' => 'category',
            'field' => 'slug',
            'terms' => array('news', 'money'),
        ),
        array(
            'taxonomy' => 'channel',
            'field' => 'id',
            'terms' => array( 11, 105 ),
            'operator' => 'NOT IN',
        )
    )
);
query_posts( $args );

שדות מיוחדים

כנ"ל לגבי שדות מיוחדים, השאילתות הפכו למורכבות יותר, ואם בעבר השתמשנו בקוד:

$args = array(
    'meta_key' => 'book_price',
    'meta_value' => 20,
    'meta_compare' => '>'
);
query_posts( $args );

הרי שהיום, נוכל להגדיר שאילתה מורכבת הרבה יותר כמו:

$args = array(
    'meta_query' => array(
        array(
            'key' => 'book_price',
            'value' => array( 20, 100 )
            'type' => 'numeric',
            'compare' => 'BETWEEN',
        ),
        array(
            'key' => 'book_genre',
            'value' => 'poetry',
            'compare' => 'NOT LIKE'
        )
    )
);
query_posts( $args );

הקוד די מסביר את עצמו, אני מקווה שאין צורך בהרחבה.

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

מאת רמי

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

7 תגובות »

  • מאור כותב :

    יופי של דבר הפיצ'ר הזה.

    אוטו כתב על זה ונתן גם כמה הסברים ודוגמאות, מי שאין לו בעיה לקרוא באנגלית –
    http://ottopress.com/2010/wordpress-3-1-advanced-taxonomy-queries/

  • רמי כותב :

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

  • עובדיה משה כותב :

    מאד מעניין הנושא…
    נותן יכולת לביצוע של מגוון שאילתות רחב יותר.
    תודה רמי

  • רמי כותב :

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

  • באינטרנט בניית אתרים כותב :

    אתה בטוח ש meta_query עובד גם ב get_posts?

  • רמי כותב :

    אין סיבה שזה לא יעבוד.

  • באינטרנט בניית אתרים כותב :

    כן עובד היה לי בעיית SYNTAX תודה!

הוסף תגובה !

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

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