View a list of categories displayed on the current page
-
Is there any way to display a list of categories displayed on the current list of blog entries?
I hope a clear question, I’m not good in English.Thanks in advance
Matan.
-
Not sure this answers exactly, but from a previous example:
<?php // get 20 latest posts, display the categories used on those posts (most recent categories) $cat_array = array(); $args=array( 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => 20, 'caller_get_posts'=> 1 ); $my_query = null; $my_query = new WP_Query($args); if( $my_query->have_posts() ) { while ($my_query->have_posts()) : $my_query->the_post(); $cat_args=array('orderby' => 'none'); $cats = wp_get_post_terms( $post->ID , 'category', $cat_args); foreach($cats as $cat) { $cat_array[$cat->term_id] = $cat->term_id; } endwhile; } if ($cat_array) { echo '<p>List of categories used on 20 latest posts</p>'; foreach($cat_array as $cat) { $category = get_term_by('ID',$cat, 'category'); echo '<p><a href="' . esc_attr(get_term_link($category, 'category')) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a><p> '; } } wp_reset_query(); // Restore global post data stomped by the_post(). ?>
Thank you, I do not really understand all the code, but I’ll try it.
I tried and it’s not exactly what I meant. But it is very close (I think).
For example, I have two categories on the site: “Cats” and “dogs“
The user site is located on the page category “Cats“
In this category there are 3 posts
One post related to the category “Cats“
Post two related category “Dogs” and “Cats“I want to see a list showing the categories that are used in page category “Cats“
Should look like this:
————————
Related categories:
– Cats
– Dogs
————————I found this post now:
This is very similar to what I want to do.Does anyone have an idea?
Sorry if maybe I made a mistake in choosing the appropriate forum. Managers are invited to forward.
Thanks in advance
Forum you selected is fine.
You would need to take the appropriate code that ‘collects’ the used categories and move that into your Category Template(s).
I have no idea how to write code that will ‘collects’ the used categories.
Maybe there’s similar code somewhere in wordpress ?@michaelh
I’ll try to ask Matan in Hebrew to explain me exactly his needs, since I’m not sure I understood exactly. Have an idea for what he asks for.
Thanks.אני לא כ”כ הבנתי מה אתה מנסה לעשות… רוצה לנסות להסביר בעברית? 🙂
אם הבנתי נכון, אתה מנסה להציג בעמוד של ארכיון קטגוריה מסויימת את רשימת כל הקטגוריות של הפוסטים שבעמוד הקטגוריה שמוצג?
אתה יכול למשל עם get_poss לקבל רשימה של כל הפוסטים שנמצאים בקטגוריה שאתה נמצא בה. אחרי זה אתה יכול בלולאת foreach לעבור על כל הפוסטים ולקבל עבור כל פוסט את רשימת הקטגוריות שהוא שייך אליהן ולשמור אותן במערך בצד.
אחרי זה לעבור על המערך של הקטגוריות שהתקבלו ולהציג אותן.זה מבחינת הלוגיקה, ואם הבנתי נכון את מה שאתה מנסה להשיג…
מאור
היי מאור,
הרבה תודה !!! לא קרה לי אף פעם שפתאום ענו לי בעברית בפורום לועזי 🙂
האמת, הבנת מה אני רוצה לעשות אבל לא הצלחתי להסביר הכל באנגלית.אז ככה:
זה האתר שלי (לא פרסמתי עד עכשיו כי הוא בעברית) fastad.co.il
יש לי מקרים שפוסט מסויים נמצא במספר קטגוריות.
אני רוצה לעשות משהו שיעזור לגולשים למצוא בקלות אתרים באינדקס.וזה מה שאני רוצה לעשות:
נומר שגולש נכנס לאינדקס ומעיין בקטגוריה “ספורט וכושר”.
בספורט וכושר יש גם פוסטים שמשויכים לקטגורה “בריאות ורפואה”.
אני מעוניין לתת אפשרות לגולש לעשות מיון מתקדם ולצפות רק בפוסטים
שנמצאים גם בקטגוריה “ספורט וכושר” וגם בקטגוריה “בריאות ורפואה”.אני רוצה להציג בכל דף ארכיון, רשימה של כל הקטגוריות שמשויכות לפוסטים שבקטגוריה שמוצגת כרגע. (כמו שהבנת)
בנוסף, שלוחצים על קטגוריה, יוצג עמוד שמציג פוסטים שנמצאות בשני הקטגוריות. (זאת שהגולש היה בה כרגע וזאת שהוא בחר מהרשימה המוצגת)
את הצגת שתי הקטגוריות, הבנתי שאני צריך איכשו לעשות עם
Multiple Category Handlingגם נתקלתי בפוסט הבא של מישל שעוזר לרכז רשימת קישורים כמו שרציתי, אבל לא הבנתי איך בדיוק להתאים את הקוד בשבילי, כי הקוד הזה מרכז רק פוסטים שמוצגים לגולש על המסך (ולא מכל הקטגוריה):
http://wordpress.org/support/topic/show-related-categories-in-cat-view?replies=33טוב, מקווה שהפעם ברור 🙂 יצא טיפה ארוך.
אני שוקל לקחת מישהו שיעשה מה שרציתי, כמובן בתשלום.
אם אתה מכיר מישהו כזה או אולי אתה רוצה, אז תגיד.ושוב, המון תודה מאור !!!
מתן.צריך קצת יותר להתעמק בזה.
אם אני מבין נכון, אז מה שאתה רוצה זה שאם גולש לוחץ על לינק של קטגוריה א’, אז לא יוצג לו הארכיון של קטגוריה א’, אלא ארכיון של פוסטים שנמצאים בקטגוריה א’ וגם ב’ למשל.
אם כך, איך הגולש יוכל לקבל את כל הפוסטים שמשוייכים רק לקטגוריה א’, או לקטגוריה א’ ועוד קטגוריה נוספת שהיא לא ב’? נשמע לי שזה דווקא עלול לסרבל את הניווט, כי לא כל הפוסטים משוייכים ל-2 הקטגוריות, ככה אתה מצמצם לו את החיפוש, אבל לא מאפשר לו להרחיב חזרה.לדעתי אולי כדאי לך בצד להשאיר את רשימת הקטגוריות בצורה רגילה לחפוש רגיל, ולהוסיף באיזה מקום נגיד איזה סלקט בוקס שיעשה את הסינון הנוסף לקטגוריה הנוספת.
איזה קוד לכתוב צריך לחשוב על זה , אבל נראה לי שזה הכיוון..
חוץ מזה שיש פלאגין שמאפשר אולי משהו דומה, לא בדקתי אותו אבל אולי שווה להציץ בו או בקוד שלו ולראות שם איך הוא עושה את הסינון של 2 קטגוריות?
http://wordpress.org/extend/plugins/multiple-category-selection-widget/screenshots/אם יהיו לי עוד רעיונות שיצוצו לי אז אחזור לפה איתם..
ושוב תודה.
ללא קשר, נכנסתי לאתר שלך וקראתי אודותיך 🙂
ואפילו קראתי עד הסוך של עמוד האודות, עד השאלה “קרתם עד פה??” וטיפה אחרי.ולעניין,
נכון, אתה צודק, אני לא מתכוון (ולא התכוונתי) להעלים את רשימת הקטגוריות בצד שמאל של האתר. היא תמיד תשאר במקומה ותתפקד כרגיל. הכוונה שלי (כמו שאמרת) היא לעשות איזה סלקט בוקס בדף של הקטגוריה עצמה, משהו כמו:
“אולי הנושא שאתה מחפש קשור גם ל-בריאות ורפואה או לספורט וכושר“
פשוט ויפה, לא ? 🙂עד עכשיו לא מצאתי פלאג שעושה דבר כזה, אבל אני אבדוק את זה שהבאת.
תודה על התגובה המהירה.
מתן.אה כתבתי את כל זה מזמן, צריך אולי קצת לערוך את עמוד האודות ההוא 🙂
אבל אם קפצת לבקר אז אתה מוזמן להירשם לרסס…ניסיתי לבדוק את האפשרות להעביר מס’ ערכים של הקטגוריה ישירות דרך ה
URL
אבל וורדפרס מתייחסת רק לפרמטר הראשון שמובר, אם מעבירים שני ערכים של אותו פרמטר (למשל 2 קטגוריות)כלומר משהו כמו – site.com/?cat=1&cat=2
לא יעבוד כאן.
יש אפשרות להעביר מערך של ערכים , כמו בדוגמה כאן
http://wordpress.org/support/topic/pass-array-to-query_vars
אבל כנראה שז בכל זאת לא ממש עובד.אבל, מה שאתה כן יכול לעשות למשל, זה למשל להוסיף פרמטר משלך ל
$_GET
ולקרוא לו איך שבא לך, נגיד –
second_cat
יש כאן מדריך קצר שמסביר איך
http://thewordpresswarrior.com/616/passing-variables-via-urlואז יש לך גולש שנמצא בקטגוריה מסוימת, שאתה יודע מה מספר הקטגוריה, ויש לך סלקט בוקס שמכיל את רשימת הקטגוריות, כשהערך הוא מספר הקטגוריה ובבחירה שלו הוא מוסיף פרמטר ב
GET
של הקטגוריה השניה, למשל –
site.com/category/sport&second-cat=flowersואז אתה כותב פונקציה שמקבלת את הפרמטר מה-
GET
ויחד עם הפרמטר של הקטגוריה הנוכחית
ומבצעת query_post
לפי ה Multiple Category Handlingנראה לי שזה יכול לעבוד.
היי,
ואוו תגובה ב-1 בלילה, אתה גדול !
נראה, אולי ארשם לרסס, אבל לא יהיה לי זמן לקרוא, אז סליחה 🙂
אבל אתה מוזמן להוסיף את האתר שלל לאינדקס שלי בכיף, אני מאשר לך אותו בפחות מדקה.פרט משני שלא ציינתי, אני לא מומחה לקוד וPHP.
אני יודע לשחק בזה טיפה, אבל לא תמיד מצליח לי 🙂הרעיון שלך נשמע טוב, אני אנסה אותו מחר,
אבל קראתי שאם לא עושים את זה נכון,
אני עלול ליצור חור אבטחה רציני באתר.
בכל מקרה, מדוע לא לעשות אולי משתנה גלובלי חדש ודרכו להעביר את ערך הקטגוריה, האם אפשר לקבוע ערך כזה בזמן לחיצה על הלינק עצמו ?
אני לא בטוח בכלל שאני יודע איך עושים כזה דבר.עוד בעיה שנתקלתי בה,
ניסיתי למצוא בימים האחרונים דרך פשוטה לקבל את מספר הID של הקטגוריה.
כל ההסברים בכל מיני מקומות וחיפושים בגוגל, פשוט לא עבדו.
אבל אני אמשיך לחפש, אני כמעט בטוח שאני עושה משהו לא נכון.אני חושב להתבסס על הקוד שפה:
http://wordpress.org/support/topic/show-related-categories-in-cat-view?replies=33#post-1466117מוכן לקבל ממך הצעת מחיר להתאמת הקוד בלינק למה שאני רוצה לעשות.
תכלול את השעות שישבת בפוסט הזה בפורום 🙂גם ב 2 בלילה 🙂
זה שולח לי למייל נוטיפיקיישן.הייתי בטוח שאתה גם מתכנת PHP…
אבל אולי אני מתבלבל עם מישהו אחר.. אתהכל דבר שעושים לא נכון יכול לייצר בעיות של אבטחה או בעיות אחרות..
לא ברור בשביל מה יש לך צורך במשתנה גלובלי בשביל הדבר הזה, נראה לי די מיותר. אתה צריך סה”כ פרמטר להעביר למערכת ..לגבי מספר הקטגוריה הנוכחית, זה הכי קל.
שים את זה בקובץ של ה
category.php
המשתנה $cur_cat
מקבל את הקטגוריה הנוכחית
$cur_cat = get_query_var('cat');
לא הבנתי את השאלה –
האם אפשר לקבוע ערך כזה בזמן לחיצה על הלינק עצמו ?אתה לא רוצה לשים סלקט בוקס עם כל הקטגוריות, אלא שוב פעם רשימה של כל הלינקים?
בכל מקרה אתה יכול לקבוע את הפרמטר גט בלינק, משהו כמו –
a href=”someting¶meter=value”
וכמובן שאתה יכול לבנות את זה דינמית, כך שהערך של הפרמטר יקבל את המספר של הקטוגריה שמוצגת.
אם אתרה משתמש בפונקציה get_categories
אז המאפיין term_id
מכיל את מספר הקטגוריה
ישלך דוגמה למשל פה –
http://codex.wordpress.org/Function_Reference/get_categoriesאתה יכול בסלקט בוקס להשתמש באירוע של ג’אווהסקריפט
onchange אם אני לא טועה
ולקבוע דרך שם הפניה של הלינק.לגבי הצעת מחיר – דבר כזה אפשר לתמחר רק לפי שעות עבודה בפועל, אני לא יודע כמה שעות יקח ליצר מכל זה משהו סופי שעובד, יכול להיות כמה שעות טובות כולל גם בדיקות ובאגים בדרך.
מה שאני כותב פה זה כיוונים לדברים שנראים לי שיעבדו, אבל צריך ללשבת ולכתוב את הקוד ולעשות טסטים כדי לספק משהו סופי סגור שעובדOk, that nice guys …
I mean, now i know how hebrew letters look like, but this is public forum, where ppl are from around all over the world. And, it’s generally agreed that we communicate in english.Now I don’t know if you found a solution or not … 😉
- The topic ‘View a list of categories displayed on the current page’ is closed to new replies.