זו אולי הפונקציה החשובה ביותר לפיתוח תבניות וורדפרס.
בעקרון 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 |
אל תשכחו להוסיף תחילית של תבנית
1 2 3 4 5 | < ? /* * Template Name: Glossary */ ?> |
עכשיו נותר לדאוג שהפוסטים הללו לא יופיעו בשאר הבלוג.
אפשרות ראשונה:
להשתמש ב-query_posts
1 | query_posts($query_string."cat=-7"); |
צריך להוסיף שורה זו לקובץ index.php
אפשרות שניה וקלה יותר,
להשתמש בתוסף Advance Category Excluder
נהניתם ? הרשמו לעדכוני RSS !
הי חנית,
יופי של פוסט. אני בדיוק מתעסק בשאלה של גלוסרי בימים האחרונים ותהיתי איך אפשר יהיה לממש גלוסרי בצורה של מילון א"ב וגם A-Z.
האם כדאי להגדיר קטגוריה עבור כל אות?? (כלומר 22 לעברית + 26 לאנגלית) זה די המון קטגוריות ומסרבל, לא?
בנוסף גם אני רוצה שיהיה עמוד שיציג לי בראשו לינקים לכל אות.
אז כמובן שאפשר לעשות עם
wp_list_cat() עבור כל שפה ולכתוב לכל אחת שיציג רק את קטגרויות האותיות של אותה השפה, אבל איכשהו נדמה לי שזה קצת מסרבל ובטח יש דרך פשוטה יותר.
תוספים לגלוסרי שגם עובדים כמו שצריך לא מצאתי אפילו עבור שפה אחת, בטח ובטח לא כזה שיתמוך בסרגל לינקים לאותיות ב 2 שפות..
יש לך איזה רעיון בשבילי?
תודה!
פוסט יפה ושימושי מאוד. אפילו מנהל אתר עם רקע נמוך בתכנות יכול לעשות בו שימוש מעולה.
תודה!
אהלן חנית,אני פשוט מתנגד ענק נגד category_name
אני חושב שעדיף לעשות slag הרבה יותר והרבה יותר פשוט,לפעמים תבניות לא תומכות בעברית אז פשוט עדיף לשנות לSLAG הערה בשבילך)
I'm aware about this previously, but still there have been some useful pieces which completed the picture for me personally, thanks!
Hm, So i'm comfortable with this nevertheless not wholly convinced, so i'm going to research a little bit more.